用Zookeeper实现分布式锁和选主

  1. 云栖社区>
  2. 博客>
  3. 正文

用Zookeeper实现分布式锁和选主

cadem 2017-02-21 17:25:35 浏览3057
展开阅读全文

Zookeeper可以用来实现Distributed lock(分布式锁)和leader election(选主)。

分布式锁和选主虽然用在不同的场景,但是2者的机制是相同的。

Zookeeper官方文档上给出了一个recipes,介绍了如何实现分布式锁和选主,2种实现说明的步骤和风格完全不一样,但是本质是一样的。

这里先翻译一下recipes对2者的说明。

获得锁的步骤:

  • 1.调用create(),以"_locknode_/lock-"作为路径名,并且设置sequence和ephemeral标志
  • 2.在锁节点上,也即"_locknode_",调用getChildren(),但不带watch标志
  • 3.如果在步骤1中创建的路径名具有最小的后缀,则客户端获得锁,客户端退出协议
  • 4.如果客户端在步骤3中没有获得锁,则客户端调用exist(),带上wat

网友评论

登录后评论
0/500
评论