4.2. 代理类型
集群管理员可为集群设置 default 代理实施。创建代理时,会使用默认代理实现,除非在 Broker
对象中提供配置。
4.2.1. 用于开发的默认代理实现
Knative 提供基于频道的默认代理实现。这个基于频道的代理可用于开发和测试目的,但不为生产环境提供适当的事件交付保证。默认代理由 InMemoryChannel
频道实现支持。
如果要使用 Apache Kafka 减少网络跃点,请为 Apache Kafka 使用 Knative 代理实现。不要将基于频道的代理配置为由 KafkaChannel
频道实现支持。
4.2.2. Apache Kafka 的生产环境就绪的 Knative 代理实现
对于生产环境就绪的 Knative Eventing 部署,红帽建议为 Apache Kafka 使用 Knative 代理实现。代理是 Knative 代理的 Apache Kafka 原生实现,它将 CloudEvents 直接发送到 Kafka 实例。
Knative 代理与 Kafka 有一个原生集成,用于存储和路由事件。它可以更好地与 Kafka 集成用于代理,并在其他代理类型中触发模型,并减少网络跃点。Knative 代理实现的其他优点包括:
- 最少一次的交付保证
- 根据 CloudEvents 分区扩展排序事件交付
- 数据平面的高可用性
- 水平扩展数据平面
Apache Kafka 的 Knative 代理实现使用二进制内容模式将传入的 CloudEvents 存储为 Kafka 记录。这意味着,所有 CloudEvent 属性和扩展都会在 Kafka 记录上映射,而 CloudEvent 的 data
规格与 Kafka 记录的值对应。