参考:http://zookeeper.apache.org/doc/trunk/zookeeperStarted.html
集群配置:
1、配置文件conf/zoo.cfg,除了单机模式的配置之外,还需要新加server.x信息,如下所示。
tickTime=2000
dataDir=D:\09tmp\zookeeper\data
clientPort=2181
initLimit=5
syncLimit=2
server.1=zoo1:2888:3888
server.2=zoo2:2888:3888
server.3=zoo3:2888:3888
zoox表示的是zookeeper服务器的IP地址,第一个端口2888:在zookeeper服务器之间及和leader连接时使用,第二个端口号:3888是在进行leader选举时使用。
2、同时需要在配置项dataDir所指示目录下创建文件myid文件,其内容为该1中server.x中的x,表示该zookeeper服务器的编号。
3、为了降低更新的延迟,需要为事物日志的存放专门指定存储路径,该配置项为:dataLogDir
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=D:\\09tmp\\zookeeper\\data
dataLogDir=D:\\09tmp\\zookeeper\\log
伪集群配置:
1、由于所有zookeeper服务器都在一台物理机器上,因此zoo1.cfg中配置项server.x的端口信息,不能相同。且配置项dataDir和dataLogDir也需要为伪服务器单独指定。配置项clientPort在三个服务器中也要配置不同的值,示例如下:
tickTime=2000
dataDir=D:\09tmp\zookeeper\data\\1
dataLogDir=D:\09tmp\zookeeper\log\\1
clientPort=2181
initLimit=5
syncLimit=2
server.1=localhost:2888:3888
server.2=localhost:2889:3889
server.3=localhost:2890:3890
2、同时需要准备zoo2.cfg和zoo3.cfg配置文件,参考1进行配置
3、在D:\09tmp\zookeeper\data\\1、D:\09tmp\zookeeper\data\\2和D:\09tmp\zookeeper\data\\3中分别创建文件myid,里面填写对应的zookeeper服务器编号。
4、创建三个文件:zkEnv1.cmd、zkEnv2.cmd和zkEnv3.cmd分别用来指定使用不同的zoo.cfg。
5、创建三个文件:zkServer1.cmd、zkServer2.cmd和zkServer3.cmd分别用来指定不同的文件zkEnv.cmd。