跳至內容

基於 Channel 的 Broker

基於 Channel 的 Broker (MTChannelBasedBroker) 使用 Channels 進行事件路由。它預設隨附於 Knative Eventing。使用者應該優先選擇原生的 Broker 實作 (例如 適用於 Apache Kafka 的 Knative BrokerRabbitMQ Broker) 而不是 MTChannelBasedBroker 和 Channel 的組合,因為它們通常效率更高,例如可以減少網路跳躍。

先決條件

  • 您已安裝 Knative Eventing。
  • 您已安裝 Channel 實作。

由於 MTChannelBasedBroker 是基於 Channels,因此您需要安裝 Channel 實作。請查看 可用的 Channels,以取得 Knative Eventing 可用 Channel 的 (非詳盡) 清單。

例如,您可以執行以下命令來安裝 InMemory Channel

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> 是您的 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-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 的底層 Channel 實作,以及一些 Channel 特定設定。例如

apiVersion: v1
kind: ConfigMap
metadata:
  name: my-broker-specific-configuration
  namespace: default
data:
  channel-template-spec: |
    apiVersion: messaging.knative.dev/v1
    kind: InMemoryChannel

Kafka Channel 設定範例

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 分享,以達到此目的。瞭解更多。