搜索

3.2. zookeeper 集群配置

download PDF

在大多数生产环境中,我们建议您部署复制的 ZooKeeper 实例集群。对于运行可靠的 ZooKeeper 服务而言,稳定且高度可用的 ZooKeeper 集群非常重要。zookeeper 集群也称为 ensemble s

zookeeper 集群通常由奇数节点组成。zookeeper 需要集群中的大多数节点都已启动并运行。例如:

  • 在具有三个节点的群集中,至少有两个节点必须已启动并在运行。这意味着它可以容忍一个节点停机。
  • 在由五个节点组成的群集中,必须至少有三个节点可用。这意味着它可以容忍两个节点停机。
  • 在一个由 7 个节点组成的集群中,必须至少有四个节点可用。这意味着它可以容忍三个节点停机。

在 ZooKeeper 集群中拥有更多节点可提高整个集群的弹性和可靠性。

zookeeper 可以在具有偶数节点的集群中运行。但是,额外的节点不会增加集群的弹性。具有四个节点的群集要求至少三个节点可用,并且只能容忍一个节点停机。因此,它与只有三个节点的集群具有完全相同的弹性。

理想情况下,不同的 ZooKeeper 节点应位于不同的数据中心或网络段内。增加 ZooKeeper 节点的数量会增加群集同步所花费的工作负载。在大多数 Kafka 用例中,带有 3、5 或 7 节点的 ZooKeeper 集群应该足够了。

警告

具有 3 个节点的 ZooKeeper 集群只能容忍 1 个不可用的节点。这意味着,如果在另一个节点上维护时集群节点崩溃,ZooKeeper 集群将无法使用。

复制 ZooKeeper 配置支持独立配置支持的所有配置选项。为集群配置添加了附加选项:

initLimit
允许跟随者连接并同步集群领导器的时间。时间被指定为多个勾号(更多详情请参阅 timeTick 选项 )。
syncLimit
追随者在领导后面的时间。时间被指定为多个勾号(更多详情请参阅 timeTick 选项 )。
reconfigEnabled
启用或禁用 动态重新配置。必须启用才能向 ZooKeeper 集群添加或删除服务器。
standaloneEnabled
启用或禁用独立模式,即 ZooKeeper 仅在一台服务器中运行。

除上述选项外,每个配置文件还应包含属于 ZooKeeper 群集成员的服务器列表。服务器记录应该以 server.id=hostname:port1:port2 格式指定,其中:

id
ZooKeeper 集群节点的 ID。
hostname
节点侦听连接的主机名或 IP 地址。
port1
用于集群内部通信的端口号。
port2
用于领导选举的端口号。

以下是具有三个节点的 ZooKeeper 集群配置文件示例:

timeTick=2000
dataDir=/var/lib/zookeeper/
initLimit=5
syncLimit=2
reconfigEnabled=true
standaloneEnabled=false

server.1=172.17.0.1:2888:3888:participant;172.17.0.1:2181
server.2=172.17.0.2:2888:3888:participant;172.17.0.2:2181
server.3=172.17.0.3:2888:3888:participant;172.17.0.3:2181
注意

在 ZooKeeper 3.5.7 中,必须先将 四个字母 命令添加到 allow 列表中,然后才能使用它们。如需更多信息,请参阅 ZooKeeper 文档

myid 文件

ZooKeeper 集群中每个节点都必须被分配一个唯一的 ID。每个节点的 ID 必须配置在 myid 文件中,并存储在 dataDir 文件夹中,如 /var/lib/zookeeper/myid 文件应只包含一个行,其中的 ID 写为文本。ID 可以是 1 到 255 的任何整数。您必须在每个集群节点上手动创建此文件。使用这个文件,每个 ZooKeeper 实例将使用配置文件 server. 行中的相应配置来配置其监听程序。它还将使用所有其他 server. 行识别其他群集成员。

在上例中,有三个节点,因此每个节点都有不同的 myid,其值分别为 123

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.