分布式系统架构系列讲解二十七(分布式锁 7)Zookeeper实现分布式锁

分布式系统架构系列讲解 - 总目录

一,Zookeeper实现分布式锁原理

利用Zookeeper的临时有序节点可以实现分布锁,简要复习一下Zookeeper的临时有序节点:

  • Ephemeral节点,在创建它的客户端与服务器间的 Session 结束时自动被删除。服务器重启会导致 Session 结束,因此 Ephemeral 类型的 znode 此时也会自动删除。
  • Sequence节点,创建出的节点名在指定的名称之后带有10位10进制数的序号。多个客户端创建同一名称的节点时,都能创建成功,只是序号不同。

实现原理

加锁

  1. 首先,在Zookeeper当中创建一个持久节点/lock。当第一个客户端想要获得锁时,需要在lock这个节点下面创建一个临时顺序节点 lock1
  2. 之后,client1查找/lock下面所有的临时顺序节点并排序,判断自己所创建的节点lock1是不是顺序最靠前的一个。如果是第一个节点,则成功获得锁。
  3. 这时候,如果再有一个客户端 client2 前来获取锁,则在节点/lock下面再创建一个临时顺序节点lock2

你可能感兴趣的:(分布式系统架构系列讲解,zookeeper实现分布式锁,zookeeper分布式锁原理)