参考:http://zookeeper.apache.org/doc/trunk/zookeeperStarted.html
集群配置:
1、配置文件conf/zoo.cfg,除了单机模式的配置之外,还需要新加server.x信息,如下所示。
tickTime=2000 dataDir=D: 9tmpzookeeperdata 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: 9tmpzookeeperdata\1 dataLogDir=D: 9tmpzookeeperlog\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: 9tmpzookeeperdata\1、D: 9tmpzookeeperdata\2和D: 9tmpzookeeperdata\3中分别创建文件myid,里面填写对应的zookeeper服务器编号。
4、创建三个文件:zkEnv1.cmd、zkEnv2.cmd和zkEnv3.cmd分别用来指定使用不同的zoo.cfg。
5、创建三个文件:zkServer1.cmd、zkServer2.cmd和zkServer3.cmd分别用来指定不同的文件zkEnv.cmd。