.. _config_network_filters_kafka_broker:
Kafka Broker 过滤器
===================
Apache Kafka broker 过滤器用于解码 `Apache Kafka `_ 的客户端协议,该客户端协议中请求和响应的消息都可以解码。支持 `Kafka 2.4.0 `_ 中的消息版本。该过滤器会尝试不影响客户端与 broker 之间的通信,因此无法解码的消息(由于 Kafka 客户端或 broker 运行的版本比该过滤器所支持的版本新)将按原样转发。
* :ref:`v3 API 参考 `
* 此过滤器的名称应该被配置为 *envoy.filters.network.kafka_broker*。
.. attention::
kafka_broker 过滤器是实验性的,目前正在开发中。功能可能会随着时间的推移而扩展,并且配置结构可能会发生变化。
.. _config_network_filters_kafka_broker_config:
配置
------
Kafka Broker 过滤器应与 TCP 代理过滤器一起使用,如下面的配置片段所示:
.. code-block:: yaml
listeners:
- address:
socket_address:
address: 127.0.0.1 # Host that Kafka clients should connect to.
port_value: 19092 # Port that Kafka clients should connect to.
filter_chains:
- filters:
- name: envoy.filters.network.kafka_broker
typed_config:
"@type": type.googleapis.com/envoy.extensions.filters.network.kafka_broker.v3.KafkaBroker
stat_prefix: exampleprefix
- name: envoy.filters.network.tcp_proxy
typed_config:
"@type": type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy
stat_prefix: tcp
cluster: localkafka
clusters:
- name: localkafka
connect_timeout: 0.25s
type: strict_dns
lb_policy: round_robin
load_assignment:
cluster_name: some_service
endpoints:
- lb_endpoints:
- endpoint:
address:
socket_address:
address: 127.0.0.1 # Kafka broker's host
port_value: 9092 # Kafka broker's port.
Kafka broker 需要公布 Envoy 的监听器端口,而不是自己的。
.. code-block:: text
# Listener value needs to be equal to cluster value in Envoy config
# (will receive payloads from Envoy).
listeners=PLAINTEXT://127.0.0.1:9092
# Advertised listener value needs to be equal to Envoy's listener
# (will make clients discovering this broker talk to it through Envoy).
advertised.listeners=PLAINTEXT://127.0.0.1:19092
.. _config_network_filters_kafka_broker_stats:
统计
------
每个配置的 Kafka Broker 过滤器的统计信息都以 *kafka..* 为根,每个消息类型具有多个统计信息。
.. csv-table::
:header: 名称, 类型, 描述
:widths: 1, 1, 2
request.TYPE, Counter, 从 Kafka 客户端收到特定类型的请求的次数
request.unknown, Counter, 接收到此过滤器无法识别的格式的请求的次数
request.failure, Counter, 接收到格式无效的请求或发生其他处理异常的次数
response.TYPE, Counter, 从 Kafka broker 处收到特定类型的响应的次数
response.TYPE_duration, Histogram, 响应生成时间(以毫秒为单位)
response.unknown, Counter, 接收到此过滤器无法识别的格式的响应的次数
response.failure, Counter, 接收到格式无效的响应或发生其他处理异常的次数