从ZooKeeper多服务器配置文档中,它展示了以下可以放置在每个服务器的
此外,他们指出每个ZK节点都需要一个名为
我对这在现实世界中是什么样子有一些实际问题:
1.可以使用
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
此外,他们指出每个ZK节点都需要一个名为
myid
的文件,其内容与上面提到的server.id
值之一相匹配。例如,在一个由3个“ensemble”(ZK群集)组成的群集中,第一个节点的myid
文件将简单地包含值1
。第二个节点的myid
文件将包含2
,以此类推。我对这在现实世界中是什么样子有一些实际问题:
1.可以使用
localhost
吗?如果必须在集合中的每个节点上重复使用zoo.cfg
,那么将当前服务器定义为localhost
是否可以?例如,在一个由3个节点组成的群集中,Server #2的zoo.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
假设Server 1的myid
中包含了值为red
,那么怎么办呢?