跳到内容

基于通道的 Broker

基于通道的 Broker (MTChannelBasedBroker) 使用通道进行事件路由。它随 Knative Eventing 默认提供。用户应优先选择原生 Broker 实现(如Knative Broker for Apache KafkaRabbitMQ Broker),而非 MTChannelBasedBroker 和通道的组合,因为它通常更高效,例如可以减少网络跳数。

先决条件

  • 您已安装 Knative Eventing。
  • 您已安装通道实现。

由于 MTChannelBasedBroker 基于通道,您需要安装一个通道实现。请查看可用通道,获取 Knative Eventing 可用通道的(非详尽)列表。

例如,您可以运行以下命令安装 InMemory 通道

kubectl apply -f https://github.com/knative/eventing/releases/download/knative-v1.20.0/in-memory-channel.yaml

创建一个 MTChannelBasedBroker

您可以使用 kn CLI 或通过使用 kubectl 应用 YAML 文件来创建 MTChannelBasedBroker。

您可以通过输入以下命令来创建 MTChannelBasedBroker

kn broker create <broker-name> --class MTChannelBasedBroker
其中 是您的 Broker 的名称。

以下示例中的 YAML 创建了一个 Broker。

  1. 通过使用以下模板创建 YAML 文件来创建 MTChannelBasedBroker

    apiVersion: eventing.knative.dev/v1
    kind: Broker
    metadata:
      annotations:
        eventing.knative.dev/broker.class: MTChannelBasedBroker
      name: <broker-name>
    
    其中 是您的 Broker 的名称。

    注意

    请注意,Broker 类是通过 eventing.knative.dev/broker.class 注解指定的。

  2. 应用 YAML 文件

    kubectl apply -f <filename>.yaml
    
    其中 <filename> 是您在上一步中创建的文件的名称。

配置

您可以配置 Broker 对象本身,或者可以定义集群或命名空间默认值。

Broker 特定配置

可以通过在 spec.config 中引用 ConfigMap 来单独配置每个 Broker

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,它定义了此 Broker 的底层通道实现,以及一些通道特定配置。例如

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

Broker 默认配置

config-br-defaults ConfigMap 定义了任何未指定 spec.config 或 Broker 类的 Broker 的默认值。可以在集群范围或按命名空间定义这些默认值。请查看管理员配置选项,了解如何在集群范围或按命名空间设置 Broker 默认值。

开发者文档

有关 MTChannelBasedBroker 的更多信息,请参阅MTChannelBasedBroker 开发者文档

我们使用分析和 cookie 来了解网站流量。有关您使用我们网站的信息会与 Google 共享以达到此目的。了解更多。