从ZooKeeper 多服务器配置文档中,他们显示了可以放置zoo.cfg
在每个服务器上(ZK 的配置文件)内部的以下配置:
tickTime=2000
dataDir=/var/zookeeper/
clientPort=2181
initLimit=5
syncLimit=2
server.1=zoo1:2888:3888
server.2=zoo2:2888:3888
server.3=zoo3:2888:3888
此外,他们声明您需要myid
在每个 ZK 节点上都有一个文件,其内容与上述server.id
值之一匹配。因此,例如,在 3 节点“集成”(ZK 集群)中,第一个节点的myid
文件将仅包含值1
. 第二个节点的myid
文件将包含2
,依此类推。
关于现实世界中的样子,我有几个实际问题:
1.可以localhost
用吗?如果zoo.cfg
必须在集合中的每个节点上重复,是否可以将当前服务器定义为localhost
?例如,在 3 节点集成中,服务器 #2zoo.cfg
看起来像这样是否可以:
tickTime=2000
dataDir=/var/zookeeper/
clientPort=2181
initLimit=5
syncLimit=2
server.1=zoo1:2888:3888
server.2=localhost:2888:3888 # Afterall, we're on server #2!
server.3=zoo3:2888:3888
还是不建议/不可能?
2.他们的服务器ID必须是数字吗?例如,我可以有一个 5 节点集合,其中每个服务器zoo.cfg
看起来像:
tickTime=2000
dataDir=/var/zookeeper/
clientPort=2181
initLimit=5
syncLimit=2
server.red=zoo1:2888:3888
server.green=zoo2:2888:3888
server.blue=zoo3:2888:3888
server.orange=zoo1:2888:3888
server.purple=zoo2:2888:3888
而且,比如说,服务器 1myid
将包含red
它内部的值(等等)?