跳过至内容

基于通道的代理

基于通道的代理 (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 创建了代理。

  1. 通过使用以下模板创建 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 注释指定。

  2. 应用 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 开发者文档

我们使用分析和 cookie 来了解网站流量。您的网站使用信息将与 Google 共享,以便于此目的。 了解更多。