Zookeeper分布式锁?
客户端A要获取分布武锁的时候首先到ocker下创建一个临时顺序节点 (node _n),然后立即获取locker下的所有(一级) 子节点。此时因为会有多个客户端同一时间争取锁,因此locker下的子节点数皇就会大于1。对于顺序节点,特点是节点名称后面自动有一个数字编号,先创建的节点数守编号小于后创建的,因此可以将子节点按照节点名称后缀的数字顺序从小到大排序,这样排在第一位的就混最先创建的顺序节点,此时它就代表了最先争取到锁的客户端!此时判断最小的这个节点是否为客户端A之前创建出来的node n,如果是则表示客户端A获取到了锁,如果不是则表示锁已经被其它客户端获取,因此客户端A要等待它释放锁,也就是等待获取到锁的那个客户端B把自己创建的那个节点册除。此时就通过监听比node_n次小的那个顺序节点的删除事件来知道客户端B是雷已经释放了锁,如果是,此时客户端A再次获取locker下的所有子 节点,再次与自己创建的node_n节点对比,直到自己
创建的node_n是locker的所有子节点中顺序号最小的,此时表示客户端A获取到了锁!