zookeeper分布式先进先出队列 (实操课程)

本系列是zookeeper相关的实操课程,课程测试环环相扣,请按照顺序阅读来学习和测试zookeeper。

 阅读本文之前,请先阅读—-​​​​​​zookeeper 单机伪集群搭建简单记录(实操课程系列)zookeeper 客户端常用命令简单记录(实操课程系列–watcher功能测试)(发布订阅功能测试)。

Zookeeper实现FIFO队列:在一个主节点server下面按顺序创建临时顺序子节点,第二个子节点在第一个子节点注册Watcher事件监听,监听前一个子节点变化,当第一个子节点消失,也就是执行完毕,马上执行,这样按顺序挂接下去,实现FIFO。

1、执行命令zkCli.cmd -server 127.0.0.1:2181连接到zoo keeper 服务器,开启客户端。,执行命令zkCli.cmd -server 127.0.0.1:2182连接到zoo keeper 服务器,开启客户端。,执行命令zkCli.cmd -server 127.0.0.1:2183连接到zoo keeper 服务器,开启客户端。如下图:

 
f75c8765eb8c414eb40edd332fe13687.png

0ec7bce5e897490597acb4653a2b11b1.png

3d4bad71254d49c1bbde60228bd84de4.png

2、2181客户端查看server节点,2182客户端查看server节点,2183客户端查看server节点,

361471fd50f84ed19c61b019d902071d.png

91de630f5ad54ae2a1ce357245e2912c.png

299e704c43054c4a88abcbcf0cecf3e7.png

3、2181客户端新建临时节点2181,2182客户端新建临时节点2182,2183客户端新建临时节点2183,

f9642bf761f446438ddf7536f1cddba8.png

4、2181是最小的序号节点,2183是最大的序号节点,所以,2182客户端监听2181节点;2183客户端监听2182节点;

6e8589acc32c41069ae87e2d41f94be5.png

 

5、2181客户端退出,2182客户端收到节点删除通知:

20007e1ac4874e8088b897525af3498f.png

 

6、2182客户端退出,2183客户端收到节点删除通知:

d4caa4930c9f406e98f6921eb9c9082d.png

总结:序号最小的执行,执行完毕退出,然后下一个收到通知,判断自己是最小的就执行,否则等待。这就是分布式先进先出队列的实现原理。

 

 

本文来自网络,不代表协通编程立场,如若转载,请注明出处:https://net2asp.com/0fb442ca9e.html