单机:
zoo.cfg
tickTime=2000
dataDir=/Users/apple/Documents/zookeeper/data
dataLogDir=/Users/apple/Documents/zookeeper/logs
clientPort=2181
伪分布式:
zoo1.cfg
tickTime=2000
initLimit=5
syncLimit=2
dataDir=/Users/apple/demo/zookeeper/z1/data
dataLogDir=/Users/apple/demo/zookeeper/z1/logs
clientPort=2181
server.1=localhost:2222:2223
server.2=localhost:3333:3334
server.3=localhost:4444:4445
zoo2.cfg
tickTime=2000
initLimit=5
syncLimit=2
dataDir=/Users/apple/demo/zookeeper/z2/data
dataLogDir=/Users/apple/demo/zookeeper/z2/logs
clientPort=2182
server.1=localhost:2222:2223
server.2=localhost:3333:3334
server.3=localhost:4444:4445
zoo3.cfg
tickTime=2000
initLimit=5
syncLimit=2
dataDir=/Users/apple/demo/zookeeper/z3/data
dataLogDir=/Users/apple/demo/zookeeper/z3/logs
clientPort=2183
server.1=localhost:2222:2223
server.2=localhost:3333:3334
server.3=localhost:4444:4445
参数含义:
- initLimit: zookeeper集群中的包含多台server, 其中一台为leader, 集群中其余的server为follower. initLimit参数配置初始化连接时, follower和leader之间的最长心跳时间. 此时该参数设置为5, 说明时间限制为5倍tickTime, 即5*2000=10000ms=10s.
- syncLimit: 该参数配置leader和follower之间发送消息, 请求和应答的最大时间长度. 此时该参数设置为2, 说明时间限制为2倍tickTime, 即4000ms.
- server.X=A:B:C 其中X是一个数字, 表示这是第几号server. A是该server所在的IP地址. B配置该server和集群中的leader交换消息所使用的端口. C配置选举leader时所使用的端口. 由于配置的是伪集群模式, 所以各个server的B, C参数必须不同.
注意:
- 各个配置文件中的 data路径和日志路径是各自的
- 在各自的data路径下建立 myid 其中写 server.x 中对应的 x
运行:
./zkServer.sh start ../../z1/z1.cfg
>> ZooKeeper JMX enabled by default
>> Using config: ../../z1/z1.cfg
>> Starting zookeeper ... STARTED
./zkServer.sh status ../../z1/z1.cfg
>> ZooKeeper JMX enabled by default
>> Using config: ../../z1/z1.cfg
>> Error contacting service. It is probably not running.
./zkServer.sh start ../../z2/z2.cfg
>> ZooKeeper JMX enabled by default
>> Using config: ../../z2/z2.cfg
>> Starting zookeeper ... STARTED
./zkServer.sh status ../../z2/z2.cfg
>> ZooKeeper JMX enabled by default
>> Using config: ../../z2/z2.cfg
>> Mode: leader
./zkServer.sh start ../../z3/z3.cfg
>> ZooKeeper JMX enabled by default
>> Using config: ../../z3/z3.cfg
>> Starting zookeeper ... STARTED
./zkServer.sh status ../../z3/z3.cfg
>> ZooKeeper JMX enabled by default
>> Using config: ../../z3/z3.cfg
>> Mode: follower