4.2. 运行多节点 Kafka 集群
将 Kafka 配置为多节点集群。
运行集群
对于 Apache Kafka 集群的 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 listener.security.protocol.map=PLAINTEXT:PLAINTEXT,REPLICATION:PLAINTEXT 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
返回:
process ID kafka.Kafka /opt/kafka/config/server.properties
使用
ncat
实用程序将dump
命令发送到其中一个 ZooKeeper 节点,以验证所有节点是否为 Kafka 集群的成员。使用 ncat dump 检查 ZooKeeper 中注册的所有 Kafka 代理
echo dump | ncat zoo1.my-domain.com 2181
要使用包括四个字母的命令,如
dump
,需要在zookeeper.properties
中指定4lw.commands.whitelist=*
。输出必须包含您刚才配置和启动的所有 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