Apache zookeeper 两台服务器上的zookeeper群集配置

Apache zookeeper 两台服务器上的zookeeper群集配置,apache-zookeeper,Apache Zookeeper,我想用zookeeper构建一个集群,但我只得到了两台服务器(a,B)。如果我在服务器A上安装两个ZooKeeper(z1,z2),在服务器B上安装一个(z3),这个集群可以工作吗? 事实上,我已经像这样配置了我的服务器z2可以启动,但我无法检查其状态。和z1和z3是独立模式。如何配置?谢谢 这个集群可以工作吗 是的,您可以在两台服务器上安装三个实例。z1和z2只需要不同的配置 对z1使用以下配置 # z1 configuration tickTime=2000 initLimit=5 sync

我想用zookeeper构建一个集群,但我只得到了两台服务器(a,B)。如果我在服务器A上安装两个ZooKeeper(
z1
z2
),在服务器B上安装一个(
z3
),这个集群可以工作吗? 事实上,我已经像这样配置了我的服务器
z2
可以启动,但我无法检查其状态。和
z1
z3
是独立模式。如何配置?谢谢

这个集群可以工作吗

是的,您可以在两台服务器上安装三个实例。z1和z2只需要不同的配置

对z1使用以下配置

# z1 configuration
tickTime=2000
initLimit=5
syncLimit=2
dataDir=/data/z1
clientPort=2181
server.1=A:2888:3888
server.2=A:2889:3889
server.3=B:2888:3888
这个是z2的

# z2 configuration
tickTime=2000
initLimit=5
syncLimit=2
dataDir=/data/z2
clientPort=2182
server.1=A:2888:3888
server.2=A:2889:3889
server.3=B:2888:3888
在z3配置中,您需要有这些行。所以z3会意识到z1和z2。如果不添加这些,z1和z2将独立运行

server.1=A:2888:3888
server.2=A:2889:3889
server.3=B:2888:3888

要检查节点的状态,只需查看dataDir下的zookeper.out文件。它将打印足够的状态信息。

谢谢您的回答。我有个问题。在apache.zookeeper.org上,它们要求“仲裁中的所有服务器都有相同配置文件的副本”。这句话是什么意思?如果我在一台服务器上安装两个zookeepers,它们的配置就不可能相同了?你是对的。同一主机上的每个实例都需要有不同的dataDir和clientPort值。zookeeper文档中的这句话试图提醒您,配置文件中的某些条目定义了zookeeper实例的工作方式。tickTime、initLimit、syncLimit和server.X等条目非常重要,zookeeper将它们用于领导者选择、故障切换等。当使用不同的值时,每个实例的行为会有所不同,因此群集可能无法按预期工作。还请记住,zookeeper文档建议每个主机只安装一个zookeeper实例。如果将所有节点安装在不同的服务器上,则可以使用完全相同的配置。我猜“仲裁中的所有服务器都有相同配置文件的副本”这句话假设您的zookeeper实例安装在不同的服务器上。谢谢您的回答。如果我在服务器A上安装两个zookeeper,在服务器B上安装一个zookeeper。配置后,我发现服务器A上的这两个zookeeper是一个集群,但无法工作。而服务器B上的zookeeper是独立的。我想如果我想构建一个包含三个zookeepers的集群,它们应该安装在三台服务器上,而不是两台服务器上。我在一台服务器上使用5个zk实例进行了一些测试。你能发布你的zk配置吗,这样我就可以知道是否有配置错误了?