step 1:apache
下载zookeeper :从http://zookeeper.apache.org找一个稳定版下载,例如:zookeeper-3.4.8.tar.gz测试
(http://apache.fayea.com/zookeeper/)命令行
step2:server
建3个集群的目录:zk0, zk1, zk2.事务
把zookeeper-3.4.8.tar.gz 解压复制3份到每一个节点下get
step3:同步
修改配置文件 /zk0/conf/zoo.cfg
tickTime=2000
initLimit=5
syncLimit=2
dataDir=d:/tmp/cluster0
dataLogDir=d:/tmp/cluster0/logs
clientPort=4180
server.0=127.0.0.1:8880:7770
server.1=127.0.0.1:8881:7771
server.2=127.0.0.1:8882:7772 it
dataLogDir能够不配置,默认放在dataDir下。io
clientPort 故名思义客端链接的端口,因为物理PC,每一个节点配置一个,不然会出现端口已占用异常。test
其它2个节点的配置 省略
step4:
在step3配置 的${dataDir} 目录下为每一个节点建myid文件,内容为对应server的编号,zk0节点下的为0.
step5:
启动zk,
命令行模式进入zk0/bin/ ,输入:
这时有warn并抛出异常,内容是链接另2个节点链接不上,能够忽略,把另2个节点依照此法逐个启动。
zk0再也不报异常。
step6:
测试集群
>zkCli -server 127.0.0.1:4182
链接第3个节点
链接zk1.
zk0:
同步成功。
备注:经常使用命令
启动ZK
zkServer
链接client
zkCli -server 127.0.0.1:4182
client 命令:
create /test "test"
get /test
set /test "test"
delete /test
后记:
1.不管哪一个节点作事务操做,各个节点都会更新。
2.
昨天才弄的zookeeper,不知道怎么查看哪一个是Leader,哪位同窗知道能够回复,多谢.
但应该是样:
启动顺序zk0,zk1,zk2. Leader 是zk1.
启动顺序是zk1,zk2,zk0,Leader是zk2.
启动顺序是zk2,zk1,zk0,Leader是zk2.
为何呢? ZK的election是有规则的:(1) TXid 最大 (2) 节点ID最大。