核心:当客户端获取锁,创建临时节点,使用锁后,删除临时节点
1.当客户端获取锁时,在lock节点下创建三个临时顺序节点。
2.然后客户端获取所有的lock下面的子节点,当发现自己创建的子节点顺序最小时,就获得了锁,用完了锁,就删除该子节点。
3.当客户端发现自己创建的节点不是最小的时候,就没有获得到锁。此时客户端就找到那个比自己小的节点,监听注册事件,以及删除事件。
4.发现比自己小的节点客户端删除节点的时候,watch会收到通知,再次判断自己创建的节点是否是最小的节点。如果是最小的节点,就获得了锁,重复以上的步骤。
注意:
1.创建顺序的子节点,是因为判断自己是否为最小的节点,从而判断自己有没有或得到锁。
2.是临时节点而不是持久化节点的原因:获取锁的节点宕机时,设置为持久化节点,锁不会被释放,临时节点不会被删除。临时节点一定时间,会自动删除。



