Skip to content

通道类型和默认值

Knative使用两种类型的通道:

  • 一个通用Channel对象。
  • 每个通道实现都有自己的自定义资源定义(CRDs),例如InMemoryChannel和KafkaChannel。 KafkaChannel支持有序的消费者传递保证,这是一个每个分区的阻塞消费者,它等待来自CloudEvent订阅者的成功响应,然后再传递该分区的下一个消息。

每个自定义通道实现都有自己的事件传递机制,比如基于内存或基于代理的机制。 代理的例子包括KafkaBroker和GCP Pub/Sub Broker。

Knative默认提供InMemoryChannel通道实现。 这个默认实现对于不希望配置特定实现类型(如Apache Kafka或NATSS Channels)的开发人员非常有用。

如果希望创建通道而不指定使用哪个通道实现CRD,则可以使用通用通道对象。 如果您不关心特定通道实现提供的属性(比如排序和持久性),并且希望使用集群管理员选择的实现,那么这将非常有用。

集群管理员可以通过编辑knative-eventing命名空间中的default-ch-webhook ConfigMap来修改默认通道实现设置。

有关修改ConfigMaps的更多信息,请参见配置事件操作符自定义资源.

可以为集群、集群上的命名空间或两者配置默认通道。

Note

如果为名称空间配置了默认通道实现,则这将覆盖集群的配置。

在下面的例子中,集群默认通道实现是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

Note

InMemoryChannel在生产环境中不能使用通道。

下一个步骤

Back to top

We use analytics and cookies to understand site traffic. Information about your use of our site is shared with Google for that purpose. Learn more.

× OK