例如,有两个客户端差不多同时创建znode,分别为/leader/lock-1和/leader/lock-2,那么创建/leader/lock-1的客户端将会持有锁,因为它的znode顺序号最小。 ⑥ 接下来,创建/leader/lock-2的客户端将持有锁,因为它顺序号紧跟前一个。 ⑦ 通过创建一个关于znode删除的观察,可以使客户端在获得锁时得到通知。 在我们的例子中,如果客户端创建了znode /leader/lock-1、/leader/lock-2和/leader/lock-3,那么只有当/leader/lock-2消失时才需要通知/leader
比如有两个客户端创建znode,那分别为/lock_node/lock-1、/lock_node/lock-2 3、进行lock操作时,获取对应lock根节点下的所有字节点,也即处于竞争中的资源标识 4
分布式锁实现(方式一) 2.2.1、实现原理 1)客户端连接zookeeper,并在父节点(/lock)下创建临时的且有序的子节点,第一个客户端对应的子节点为/lock/lock-1,第二个为/lock/lock
lock_node的子节点,并且节点类型为有序临时节点(EPHEMERAL_SEQUENTIAL); 例如:有两个客户端创建znode,分别为/lock_node/lock-1和/lock_node/lock
分布式锁实现(方式一) 2.2.1、实现原理 1)客户端连接zookeeper,并在父节点(/lock)下创建临时的且有序的子节点,第一个客户端对应的子节点为/lock/lock-1,第二个为/lock/lock