×

集群管理员可以为集群设置默认的代理实现。创建代理时,除非在Broker对象中提供设置配置,否则将使用默认的代理实现。

用于开发的默认代理实现

Knative 提供了一个默认的基于通道的代理实现。此基于通道的代理可用于开发和测试目的,但不提供生产环境中足够的事件传递保证。默认代理默认由InMemoryChannel通道实现支持。

如果要使用 Apache Kafka 来减少网络跳数,请使用 Apache Kafka 的 Knative 代理实现。不要将基于通道的代理配置为由KafkaChannel通道实现支持。

用于 Apache Kafka 的生产就绪型 Knative 代理实现

对于生产就绪型 Knative Eventing 部署,Red Hat 建议使用 Apache Kafka 的 Knative 代理实现。该代理是 Knative 代理的 Apache Kafka 原生实现,它直接将 CloudEvents 发送到 Kafka 实例。

Knative 代理与 Kafka 具有原生集成,用于存储和路由事件。这使得代理和触发器模型与 Kafka 的集成比其他代理类型更好,并减少了网络跳数。Knative 代理实现的其他好处包括:

  • 至少一次传递保证

  • 基于 CloudEvents 分区扩展的事件有序传递

  • 控制平面高可用性

  • 水平可扩展的数据平面

Apache Kafka 的 Knative 代理实现使用二进制内容模式将传入的 CloudEvents 存储为 Kafka 记录。这意味着所有 CloudEvent 属性和扩展都作为 Kafka 记录的 header 进行映射,而 CloudEvent 的data规范对应于 Kafka 记录的值。