4.2. 监听器


监听器用于连接到 Kafka 代理。每个 Kafka 代理都可以配置为使用多个监听程序。每个侦听器都需要不同的配置,以便它可以侦听不同的端口或网络接口。

要配置监听程序,请编辑配置文件中的 监听程序 属性(/opt/kafka/config/server.properties)。以逗号分隔列表的形式将 监听程序添加到监听程序 属性。配置每个属性,如下所示:

<listenerName>://<hostname>:<port>
Copy to Clipboard Toggle word wrap

如果 <hostname> 为空,则 Kafka 将使用 java.net.InetAddress.getCanonicalHostName() 类作为主机名。

多个监听器的配置示例

listeners=internal-1://:9092,internal-2://:9093,replication://:9094
Copy to Clipboard Toggle word wrap

当 Kafka 客户端连接到 Kafka 集群时,它首先连接到 bootstrap 服务器,这是集群节点之一。bootstrap 服务器为客户端提供集群中所有代理的列表,客户端会单独连接到每个代理。代理列表基于配置 的监听程序

advertised 监听程序

另外,您可以使用 advertised.listeners 属性为客户端提供不同于监听程序属性中给出的一系列不同的监听程序地址。如果其他网络基础架构(如代理)在客户端和代理之间,或者会使用外部 DNS 名称而不是 IP 地址,这很有用。

advertised.listeners 属性的格式与 listeners 属性相同。

公告监听程序的配置示例

listeners=internal-1://:9092,internal-2://:9093
advertised.listeners=internal-1://my-broker-1.my-domain.com:1234,internal-2://my-broker-1.my-domain.com:1235
Copy to Clipboard Toggle word wrap

注意

公告的监听程序的名称必须与监听程序属性中列出的名称匹配。

inter-broker 监听程序

inter-broker 监听程序 用于 Kafka 代理之间的通信。需要代理间通信:

  • 在不同代理间协调工作负载
  • 在存储在不同代理中的分区间复制消息
  • 处理控制器中的管理任务,如分区领导变化

inter-broker 侦听器可以分配给您选择的端口。当配置了多个监听程序时,您可以在 inter.broker.listener.name 属性中定义 inter-broker 监听程序的名称。

在这里,inter-broker 侦听器被命名为 REPLICATION

listeners=REPLICATION://0.0.0.0:9091
inter.broker.listener.name=REPLICATION
Copy to Clipboard Toggle word wrap

control plane 监听程序

默认情况下,控制器和其他代理之间的通信使用 inter-broker 侦听器。控制器负责协调管理任务,如分区领导变化。

您可以为控制器连接启用专用 control plane 侦听器。control plane 侦听器可以分配给您选择的端口。

要启用 control plane 侦听程序,请使用监听程序名称配置 control.plane.listener.name 属性:

listeners=CONTROLLER://0.0.0.0:9090,REPLICATION://0.0.0.0:9091
...
control.plane.listener.name=CONTROLLER
Copy to Clipboard Toggle word wrap

启用 control plane 侦听程序可能会提高集群性能,因为控制器通信不会因为代理中的数据复制不会延迟。数据复制通过 inter-broker 侦听器继续。

如果没有配置 control.plane.listener,控制器连接将使用 inter-broker 侦听器

如需更多信息,请参阅 附录 A, 代理配置参数

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat