【问题标题】:Adding new ZooKeeper node in Kafka cluster?在 Kafka 集群中添加新的 ZooKeeper 节点?
【发布时间】:2018-08-25 14:00:26
【问题描述】:

我正在运行一个由五个节点组成的 Apache Kafka 集群,并且我正在使用一个由三个节点组成的 Apache ZooKeeper 集群。

在 zookeeper.properties 文件中:

server.1=zNode01:2888:3888
server.2=zNode02:2888:3888
server.3=zNode03:2888:3888

在 server.properties 文件中:

zookeeper.connect=zNode01:2181,zNode02:2181,zNode03:2181

我想添加一个新的 ZooKeeper 节点:

  1. 我需要将此新的 ZooKeeper IP 添加到现有的 ZooKeeper 属性文件并需要重新启动它,或者有其他方法吗?

  2. 我需要将这个新的 ZooKeeper IP 添加到 Kafka server.properties 文件并需要重新启动它,或者还有其他方法吗?

【问题讨论】:

    标签: apache-kafka apache-zookeeper


    【解决方案1】:

    它比@cricket_007 描述的更复杂。在您尝试将新成员添加到现有 zookeeper 集群之前,这将是一个很好的阅读。

    https://zookeeper.apache.org/doc/r3.5.3-beta/zookeeperReconfig.html

    特别关注“修改当前动态配置”部分。

    基本上,这些是高级步骤:

    a) 必须将新服务器介绍给领导者。这是通过在 zookeeper.properties 文件中添加自身和“足够的集群信息”来完成的,以便加入者连接到现有的领导者。配置不需要绝对是最新的,但足以与当前领导者连接。为此,您只需从集群中的一个节点获取 zookeeper.properties 文件,将 joiner 信息附加到该文件,然后在 joiner 节点上启动 zookeeper 服务器。

    b) 请注意,能够与集群的领导者对话的加入者不会自动使其成为集群的一部分。 zookeeper ensemble 必须投票并决定将新节点添加到集群中。 joiner 当前的状态是 non-voting follower,如果你查看 zookeeper ensemble 的当前配置(通过 zkcli 的“config”命令),你不会看到 ensemble 中列出的新节点。

    c) 现在,我们使用 zkcli 的“reconfig”命令将新节点作为投票参与者或观察者添加到集群中。投票参与者意味着所有的共识决定(例如谁是新领导者,是否提交写入等)将涉及所有投票参与者(而不是观察者)。添加观察者主要是为了增加 zookeeper ensemble 的读取吞吐量,而不会增加在每个写入操作的 2 阶段提交中涉及它们的额外开销。 reconfig 命令也执行这个两阶段提交,领导者从所有投票参与者那里收集投票,​​是否应该将新节点添加到集群中。如果现有参与者的 quorum 同意,则将新节点添加到集群中。

    d) 现在,执行 zkcli 的 config 命令会将新节点显示为集群的一部分,无论是作为投票参与者还是作为观察者。

    e) 最后,您需要更新 kafka 的 server.properties 文件以关闭循环。尽管可能不会立即需要此更改,但这会通知 kafka 服务器(它是 zookeeper 客户端)zookeeper 集群中新成员的可用性,以便它可以在故障情况下回退到新添加的节点。

    希望答案有助于了解如何动态地将新节点添加到 zookeeper 集群。

    【讨论】:

      【解决方案2】:

      注意:我自己没有尝试扩展 ZK 集群,但我会尝试

      使用属性文件中定义的所有服务器添加新节点。他们应该很好地加入。

      然后将两个新服务器添加到其他 ZK,并在它们上执行滚动重启。

      Kafka 不需要添加额外的属性,除非您预计在任何给定时间会丢失多个 ZK

      【讨论】:

        猜你喜欢
        • 2016-06-16
        • 1970-01-01
        • 2017-02-01
        • 2017-11-20
        • 1970-01-01
        • 2015-09-08
        • 1970-01-01
        • 2019-04-12
        • 2019-04-03
        相关资源
        最近更新 更多