分布式系统架构系列讲解 - 总目录
一,Zookeeper实现分布式锁原理
利用Zookeeper的临时有序节点可以实现分布锁,简要复习一下Zookeeper的临时有序节点:
- Ephemeral节点,在创建它的客户端与服务器间的 Session 结束时自动被删除。服务器重启会导致 Session 结束,因此 Ephemeral 类型的 znode 此时也会自动删除。
- Sequence节点,创建出的节点名在指定的名称之后带有10位10进制数的序号。多个客户端创建同一名称的节点时,都能创建成功,只是序号不同。
实现原理
加锁
- 首先,在Zookeeper当中创建一个持久节点
/lock
。当第一个客户端想要获得锁时,需要在lock
这个节点下面创建一个临时顺序节点lock1
。 - 之后,
client1
查找/lock
下面所有的临时顺序节点并排序,判断自己所创建的节点lock1
是不是顺序最靠前的一个。如果是第一个节点,则成功获