4.2. 监听程序


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

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

<listenerName>://<hostname>:<port>

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

多个监听器的配置示例

listeners=internal-1://:9092,internal-2://:9093,replication://:9094

当 Kafka 客户端想要连接到 Kafka 集群时,它首先连接到 bootstrap 服务器,这是集群节点之一。bootstrap 服务器为客户端提供集群中所有代理的列表,客户端分别连接到每个代理。代理列表基于配置的 listeners

公告的监听程序

另外,您可以使用 advertised.listeners 属性为客户端提供与 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

注意

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

内联监听程序

broker 侦听程序 用于 Kafka 代理之间的通信。以下对象需要代理间通信:

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

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

在这里,broker 侦听程序命名为 REPLICATION

listeners=REPLICATION://0.0.0.0:9091
inter.broker.listener.name=REPLICATION

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

启用 control plane 侦听器可能会提高集群性能,因为控制器通信不会因为代理间的数据复制而延迟。数据复制继续通过代理间侦听器进行。

如果没有配置 control.plane.listener,控制器连接将使用 代理间侦听程序

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

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.