6.3.6. 扩展 ZooKeeper 集群
这个步骤描述了如何将服务器(节点)添加到 ZooKeeper 集群。ZooKeeper 的动态重新配置 功能在向上扩展过程中维护一个稳定的 ZooKeeper 集群。
先决条件
-
ZooKeeper 配置文件中启用了动态重新配置(
reconfigEnabled=true
)。 - zookeeper 身份验证已启用,您可以使用身份验证机制访问新服务器。
流程
对每个 ZooKeeper 服务器执行以下步骤,一次一个服务器:
- 在 ZooKeeper 集群中添加服务器,如 第 3.3 节 “运行多节点 ZooKeeper 集群” 所述,然后启动 ZooKeeper。
- 注意新服务器的 IP 地址和配置访问端口。
为服务器启动一个
zookeeper-shell
会话。从可访问集群的机器中运行以下命令(如果可以访问,这可能是 ZooKeeper 节点或本地机器之一)。su - kafka /opt/kafka/bin/zookeeper-shell.sh <ip-address>:<zk-port>
在 shell 会话中,在运行 ZooKeeper 节点的情况下,输入以下行,将新服务器作为投票成员添加到仲裁中:
reconfig -add server.<positive-id> = <address1>:<port1>:<port2>[:role];[<client-port-address>:]<client-port>
例如:
reconfig -add server.4=172.17.0.4:2888:3888:participant;172.17.0.4:2181
其中
<positive-id>
是新服务器 ID4
。对于两个端口,
<port1>
2888 用于 ZooKeeper 服务器之间的通信,<port2>
3888 则用于领导选举机制。新配置传播到 ZooKeeper 群集中的其他服务器;新服务器现在是仲裁的完整成员。
- 对您要添加的其他服务器重复第 1-4 步。