Kafka Mesh(原型)

此扩展的限定名称为 envoy.filters.network.kafka_mesh

注意

此扩展仅在 contrib 映像中可用。

注意

此扩展正在开发中。功能尚不完整,不适用于生产环境。

此扩展尚未经过强化,应仅在上下游都可信的部署中使用。

提示

此扩展扩展并可与以下扩展类别一起使用

警告

此 API 功能目前正在开发中。标记为正在开发中的 API 功能不被视为稳定,不受 威胁模型 的涵盖范围,不受安全团队支持,并且可能会发生重大更改。在了解上述所有要点之前,请勿使用此功能。

Kafka Mesh 配置概述

extensions.filters.network.kafka_mesh.v3alpha.KafkaMesh

[extensions.filters.network.kafka_mesh.v3alpha.KafkaMesh proto]

{
  "advertised_host": ...,
  "advertised_port": ...,
  "upstream_clusters": [],
  "forwarding_rules": [],
  "consumer_proxy_mode": ...
}
advertised_host

(string, REQUIRED) Envoy 向客户端宣传的主机。与相应的 Kafka 代理属性具有相同的含义。通常等于过滤器链的监听器配置,但需要对客户端可访问(因此 0.0.0.0 无法工作)。

advertised_port

(int32) Envoy 向客户端宣传的端口。

upstream_clusters

(repeated extensions.filters.network.kafka_mesh.v3alpha.KafkaClusterDefinition) 此过滤器将连接到的上游集群。

forwarding_rules

(repeated extensions.filters.network.kafka_mesh.v3alpha.ForwardingRule) 将决定哪个集群获得哪个请求的规则。

consumer_proxy_mode

(extensions.filters.network.kafka_mesh.v3alpha.KafkaMesh.ConsumerProxyMode) 消费者代理应如何表现 - 这主要与 Fetch 请求处理有关。

枚举 extensions.filters.network.kafka_mesh.v3alpha.KafkaMesh.ConsumerProxyMode

[extensions.filters.network.kafka_mesh.v3alpha.KafkaMesh.ConsumerProxyMode proto]

StatefulConsumerProxy

(DEFAULT) ⁣接收到的记录将分布在所有下游消费者连接中。在此模式下,Envoy 使用指向 Kafka 上游集群的 librdkafka 消费者,这意味着这些消费者的位置是有意义的,并且会影响从上游接收到的记录。用户可能需要查看这些消费者的自定义配置以管理其自动提交功能,因为这会影响 Envoy 在重新启动时的行为。

extensions.filters.network.kafka_mesh.v3alpha.KafkaClusterDefinition

[extensions.filters.network.kafka_mesh.v3alpha.KafkaClusterDefinition proto]

{
  "cluster_name": ...,
  "bootstrap_servers": ...,
  "partition_count": ...,
  "producer_config": {...},
  "consumer_config": {...}
}
cluster_name

(string, REQUIRED) 集群名称。

bootstrap_servers

(string, REQUIRED) Kafka 集群地址。

partition_count

(int32) 此集群中存在的默认分区数量。这对于在其有效负载中未指定分区的客户端特别重要,这些客户端依赖此值进行散列。上游指向的 Kafka 消费者将在消费者代理场景中使用相同数量的分区。

producer_config

(repeated map<string, string>) 传递给 Kafka 生产者的自定义配置。

consumer_config

(repeated map<string, string>) 传递给 Kafka 消费者的自定义配置。

extensions.filters.network.kafka_mesh.v3alpha.ForwardingRule

[extensions.filters.network.kafka_mesh.v3alpha.ForwardingRule proto]

{
  "target_cluster": ...,
  "topic_prefix": ...
}
target_cluster

(string) 集群名称。

topic_prefix

(string) 用于将来类型的前向规则的预期位置。