1.
客户端对某个方法加锁时,在
zk
上的与该方法对应的指定节点的目录下,生成一个唯一
的瞬时有序节点
node1;
2.
客户端获取该路径下所有已经创建的子节点,如果发现自己创建的
node1
的序号是最小
的,就认为这个客户端获得了锁。
3.
如果发现
node1
不是最小的,则监听比自己创建节点序号小的最大的节点,进入等待。
4.
获取锁后,处理完逻辑,删除自己创建的
node1
即可。