基于通道的代理¶
基于通道的代理 (MTChannelBasedBroker
) 使用 通道 进行事件路由。它默认与 Knative Eventing 一起提供。用户应该优先考虑使用原生代理实现(例如 用于 Apache Kafka 的 Knative 代理 或 RabbitMQ 代理)而不是 MTChannelBasedBroker 和通道组合,因为它们通常更高效,例如减少了网络跳跃。
先决条件¶
- 您已安装 Knative Eventing。
- 您已安装通道实现。
由于 MTChannelBasedBroker 基于通道,因此您需要安装通道实现。查看 可用通道 以获取 Knative Eventing 可用通道的(非详尽)列表。
例如,您可以通过运行以下命令安装内存中通道
kubectl apply -f https://github.com/knative/eventing/releases/download/knative-v1.16.0/in-memory-channel.yaml
创建 MTChannelBasedBroker¶
您可以使用 kn
CLI 或通过使用 kubectl
应用 YAML 文件来创建 MTChannelBasedBroker。
您可以通过输入以下命令来创建 MTChannelBasedBroker
kn broker create <broker-name> --class MTChannelBasedBroker
<broker-name>
是您代理的名称。
以下示例中的 YAML 创建了代理。
-
通过使用以下模板创建 YAML 文件来创建 MTChannelBasedBroker
其中apiVersion: eventing.knative.dev/v1 kind: Broker metadata: annotations: eventing.knative.dev/broker.class: MTChannelBasedBroker name: <broker-name>
<broker-name>
是您代理的名称。注意
请注意,代理类通过
eventing.knative.dev/broker.class
注释指定。 -
应用 YAML 文件
其中kubectl apply -f <filename>.yaml
<filename>
是您在上一步中创建的文件的名称。
配置¶
您可以配置代理对象本身,也可以定义集群或命名空间默认值。
特定于代理的配置¶
可以通过在 spec.config
中引用 ConfigMap 来单独配置每个代理。
apiVersion: eventing.knative.dev/v1
kind: Broker
metadata:
annotations:
eventing.knative.dev/broker.class: MTChannelBasedBroker
name: default
spec:
# Configuration specific to this broker.
config:
apiVersion: v1
kind: ConfigMap
name: my-broker-specific-configuration
namespace: default
引用的 ConfigMap 必须包含一个 channel-template-spec
,该规范定义了此代理的基础通道实现,以及一些特定于通道的配置。例如
apiVersion: v1
kind: ConfigMap
metadata:
name: my-broker-specific-configuration
namespace: default
data:
channel-template-spec: |
apiVersion: messaging.knative.dev/v1
kind: InMemoryChannel
Kafka 通道 配置示例
apiVersion: v1
kind: ConfigMap
metadata:
name: kafka-channel
namespace: knative-eventing
data:
channel-template-spec: |
apiVersion: messaging.knative.dev/v1beta1
kind: KafkaChannel
spec:
numPartitions: 3
replicationFactor: 1
代理默认配置¶
config-br-defaults
ConfigMap 定义了任何未指定 spec.config
或代理类的代理的默认值。可以定义这些集群范围的默认值,也可以按命名空间定义这些默认值。查看 管理员配置选项,了解如何设置集群范围的代理默认值或按命名空间设置代理默认值。
开发者文档¶
有关 MTChannelBasedBroker
的更多信息,请参阅 MTChannelBasedBroker 开发者文档。