如何自动缩放apache zookeeper
How to auto scale apache zookeeper
有人使用 Auto Scale 来扩展 Zookeeper 集群吗?如果 zookeeper 缩放,客户如何知道它已经放大或缩小了?特别像 Kafka,其中 zookeeper 列表被添加到配置文件中,zookeeper 扩展了 kafka 现在的扩展程度等等,发生了什么?
简短回答:如果有新节点添加到 ZooKeeper 集群,ZooKeeper 客户端基本上不需要 know/track。他们只需要至少一个可用的(健康的)ZK 节点。
更长的答案(以 Kafka 作为 ZK 的示例客户端):
- 如果您只是向 ZooKeeper 集群添加新节点,Kafka 代理不必知道这一点,因为
zookeeper.connect
配置仍然包含健康的 ZK 节点。
- 但是,如果您是 replacing/removing 一些 ZooKeeper 节点,并且这些是
zookeeper.connect
配置中唯一存在的节点,那么将需要滚动重启 Kafka 节点,更新 zookeeper.connect
配置后。
对于上面的#1,最好在下次 Kafka 集群重启时将新的 ZK 节点添加到 Kafka 配置中。
同样适用于也依赖于 ZK 的其他技术(例如 Apache Storm)。
有人使用 Auto Scale 来扩展 Zookeeper 集群吗?如果 zookeeper 缩放,客户如何知道它已经放大或缩小了?特别像 Kafka,其中 zookeeper 列表被添加到配置文件中,zookeeper 扩展了 kafka 现在的扩展程度等等,发生了什么?
简短回答:如果有新节点添加到 ZooKeeper 集群,ZooKeeper 客户端基本上不需要 know/track。他们只需要至少一个可用的(健康的)ZK 节点。
更长的答案(以 Kafka 作为 ZK 的示例客户端):
- 如果您只是向 ZooKeeper 集群添加新节点,Kafka 代理不必知道这一点,因为
zookeeper.connect
配置仍然包含健康的 ZK 节点。 - 但是,如果您是 replacing/removing 一些 ZooKeeper 节点,并且这些是
zookeeper.connect
配置中唯一存在的节点,那么将需要滚动重启 Kafka 节点,更新zookeeper.connect
配置后。
对于上面的#1,最好在下次 Kafka 集群重启时将新的 ZK 节点添加到 Kafka 配置中。
同样适用于也依赖于 ZK 的其他技术(例如 Apache Storm)。