ZooKeeper从入门到精通12:ZooKeeper Serv

2020-04-07  本文已影响0人  金字塔下的小蜗牛

ZooKeeper集群内部各个节点(leader和follower)间使用端口2888进行数据同步。

1.启动ZooKeeper集群

[root@bigdata131 ~]# zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /root/trainings/zookeeper-3.4.10/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
[root@bigdata131 ~]# zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /root/trainings/zookeeper-3.4.10/bin/../conf/zoo.cfg
Mode: follower

[root@bigdata132 ~]# zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /root/trainings/zookeeper-3.4.10/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
[root@bigdata132 ~]# zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /root/trainings/zookeeper-3.4.10/bin/../conf/zoo.cfg
Mode: leader

[root@bigdata133 ~]# zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /root/trainings/zookeeper-3.4.10/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
[root@bigdata133 ~]# zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /root/trainings/zookeeper-3.4.10/bin/../conf/zoo.cfg
Mode: follower

2.先查看三个节点上的原始数据

[zk: bigdata131:2181(CONNECTED) 0] ls /
[node0000000004, node11, zookeeper]
[zk: bigdata131:2181(CONNECTED) 1] get /node11
11
cZxid = 0x400000023
ctime = Thu Nov 29 08:26:10 CST 2018
mZxid = 0x400000023
mtime = Thu Nov 29 08:26:10 CST 2018
pZxid = 0x400000034
cversion = 4
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 2
numChildren = 4

[zk: bigdata132:2181(CONNECTED) 0] ls /
[node0000000004, node11, zookeeper]
[zk: bigdata132:2181(CONNECTED) 1] get /node11
11
cZxid = 0x400000023
ctime = Thu Nov 29 08:26:10 CST 2018
mZxid = 0x400000023
mtime = Thu Nov 29 08:26:10 CST 2018
pZxid = 0x400000034
cversion = 4
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 2
numChildren = 4

[zk: bigdata133:2181(CONNECTED) 0] ls /
[node0000000004, node11, zookeeper]
[zk: bigdata133:2181(CONNECTED) 1] get /node11
11
cZxid = 0x400000023
ctime = Thu Nov 29 08:26:10 CST 2018
mZxid = 0x400000023
mtime = Thu Nov 29 08:26:10 CST 2018
pZxid = 0x400000034
cversion = 4
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 2
numChildren = 4

3.在leader上创建/更新/删除节点

[zk: bigdata131:2181(CONNECTED) 2] create /node22 22
Created /node22
[zk: bigdata131:2181(CONNECTED) 3] set /node11 1111
cZxid = 0x400000023
ctime = Thu Nov 29 08:26:10 CST 2018
mZxid = 0x600000009
mtime = Fri Nov 30 08:17:35 CST 2018
pZxid = 0x400000034
cversion = 4
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 4
numChildren = 4
[zk: bigdata131:2181(CONNECTED) 4] delete /node0000000004

4.在follower上查看同步后的结果

[zk: bigdata132:2181(CONNECTED) 2] ls /
[node11, node22, zookeeper]
[zk: bigdata132:2181(CONNECTED) 3] get /node11
1111
cZxid = 0x400000023
ctime = Thu Nov 29 08:26:10 CST 2018
mZxid = 0x600000009
mtime = Fri Nov 30 08:17:35 CST 2018
pZxid = 0x400000034
cversion = 4
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 4
numChildren = 4
[zk: bigdata132:2181(CONNECTED) 4] get /node22
22
cZxid = 0x600000008
ctime = Fri Nov 30 08:17:16 CST 2018
mZxid = 0x600000008
mtime = Fri Nov 30 08:17:16 CST 2018
pZxid = 0x600000008
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 2
numChildren = 0

[zk: bigdata133:2181(CONNECTED) 2] ls /
[node11, node22, zookeeper]
[zk: bigdata133:2181(CONNECTED) 3] get /node11
1111
cZxid = 0x400000023
ctime = Thu Nov 29 08:26:10 CST 2018
mZxid = 0x600000009
mtime = Fri Nov 30 08:17:35 CST 2018
pZxid = 0x400000034
cversion = 4
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 4
numChildren = 4
[zk: bigdata133:2181(CONNECTED) 4] get /node22
22
cZxid = 0x600000008
ctime = Fri Nov 30 08:17:16 CST 2018
mZxid = 0x600000008
mtime = Fri Nov 30 08:17:16 CST 2018
pZxid = 0x600000008
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 2
numChildren = 0

可以看到:leader上所做的修改,立即被同步到了所有follower上。这里即使原来的leader挂了,那么通过选举将某一个follower选为新的leader之后,仍可以正确的对外提供服务。

上一篇下一篇

猜你喜欢

热点阅读