最近在看zookeeper的分布式锁使用方法时,看到网上的一些方法基本就是如下步骤:
1、在一个存储锁的持久节点下创建临时顺序节点
2、获取该持久节点下的所有临时顺序节点的名字,并判断前面创建的节点是否最小序号节点。
3、如不是最小节点,则监听前一个序号的删除事件。
4、如收到前一个序号的删除,则再次获取所有临时节点,重复上面的第2步的判断,直到获得锁。
我的问题是,既然是顺序节点,如果监控的前一个节点出现了删除事件,说明应该已经释放锁,当前的节点已经是最小节点,为什么还要再次获取所有临时节点并判断呢。