參考: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。