跳至內容

通道類型和預設值

Knative 使用兩種通道類型

  • 一個通用的通道物件。
  • 每個都有自己的自訂資源定義 (CRD) 的通道實作,例如 InMemoryChannel 和 KafkaChannel。 KafkaChannel 支援排序的消費者傳遞保證,這是一個每個分割區的封鎖消費者,它會等待 CloudEvent 訂閱者成功回應,然後才會傳遞分割區的下一則訊息。

自訂通道實作各自有自己的事件傳遞機制,例如記憶體內或基於 Broker。 Broker 的範例包括 KafkaBroker 和 GCP Pub/Sub Broker。

Knative 預設提供 InMemoryChannel 通道實作。此預設實作對於不想設定特定實作類型(例如 Apache Kafka 或 NATSS 通道)的開發人員很有用。

如果您想建立通道而不指定使用哪個通道實作 CRD,則可以使用通用通道物件。如果您不關心特定通道實作提供的屬性(例如排序和持久性),並且您想使用叢集管理員選擇的實作,這會很有用。

叢集管理員可以透過編輯 knative-eventing 命名空間中的 default-ch-webhook ConfigMap 來修改預設通道實作設定。

如需有關修改 ConfigMap 的詳細資訊,請參閱設定 Eventing Operator 自訂資源

可以為叢集、叢集上的命名空間或兩者設定預設通道。

注意

如果為命名空間設定了預設通道實作,這將會覆寫叢集的設定。

在下列範例中,叢集預設通道實作是 InMemoryChannel,而 example-namespace 的命名空間預設通道實作是 KafkaChannel。

apiVersion: v1
kind: ConfigMap
metadata:
  name: default-ch-webhook
  namespace: knative-eventing
data:
  default-ch-config: |
    clusterDefault:
      apiVersion: messaging.knative.dev/v1
      kind: InMemoryChannel
    namespaceDefaults:
      example-namespace:
        apiVersion: messaging.knative.dev/v1beta1
        kind: KafkaChannel
        spec:
          numPartitions: 2
          replicationFactor: 1

注意

InMemoryChannel 通道不得在生產環境中使用。

後續步驟

我們使用分析和 Cookie 來了解網站流量。您使用我們網站的相關資訊會與 Google 分享以達到該目的。了解更多資訊。