4.5. 运行多节点 Kafka 集群
这个步骤描述了如何将 Kafka 配置为多节点集群。
运行集群
对于 AMQ Streams 集群中的每个 Kafka 代理:
按如下方式编辑
/opt/kafka/config/server.properties
Kafka 配置文件:-
将第一个代理的
broker.id
字段设置为0
,第二个代理为1
,以此类推。 -
在
zookeeper.connect
选项中配置连接到 ZooKeeper 的详情。 - 配置 Kafka 侦听程序。
设置提交日志应存储在
logs.dir
目录中的目录。在这里,我们会看到 Kafka 代理的配置示例:
broker.id=0 zookeeper.connect=zoo1.my-domain.com:2181,zoo2.my-domain.com:2181,zoo3.my-domain.com:2181 listeners=REPLICATION://:9091,PLAINTEXT://:9092 inter.broker.listener.name=REPLICATION log.dirs=/var/lib/kafka
在典型的安装中,每个 Kafka 代理都在相同的硬件中运行,只有
broker.id
配置属性会因代理配置而异。
-
将第一个代理的
使用默认配置文件启动 Kafka 代理。
su - kafka /opt/kafka/bin/kafka-server-start.sh -daemon /opt/kafka/config/server.properties
验证 Kafka 代理正在运行。
jcmd | grep Kafka
验证代理
当集群的所有节点都启动并运行后,使用 ncat
工具向其中一个 ZooKeeper 节点发送 dump
命令来验证所有节点是否都是 Kafka 集群的成员。命令打印 ZooKeeper 注册的所有 Kafka 代理。
使用 ncat stat 检查节点状态。
echo dump | ncat zoo1.my-domain.com 2181
输出应包含您刚才配置和启动的所有 Kafka 代理。
带有 3 个节点的 Kafka 集群的
ncat
命令输出示例:SessionTracker dump: org.apache.zookeeper.server.quorum.LearnerSessionTracker@28848ab9 ephemeral nodes dump: Sessions with Ephemerals (3): 0x20000015dd00000: /brokers/ids/1 0x10000015dc70000: /controller /brokers/ids/0 0x10000015dc70001: /brokers/ids/2
其它资源
- 有关安装 AMQ Streams 的详情请参考 第 2.3 节 “安装 AMQ Streams”。
- 有关配置 AMQ Streams 的详情请参考 第 2.8 节 “配置 AMQ 流”。
- 有关运行 ZooKeeper 集群的详情请参考 第 3.3 节 “运行多节点 ZooKeeper 集群”。
- 有关支持 Kafka 代理配置选项的完整列表,请参阅 附录 A, 代理配置参数。