一文了解 Zookeeper 基本原理与应用场景

首页 / 后端 raleign 8月前 ⋅ 83 阅读

分布式锁

不同节点上的服务,可能需要同时访问一个资源,这事可能需要一把分布式锁。使用 Zookeeper 实现分布式锁主要基于以下特性:
  • ZooKeeper 的强一致性,保证只有一个客户端能够创建锁成功。

  • 锁的独占性,创建 ZNode 成功的客户端才能得到锁,其他客户端只能等待,当客户端用完释放锁时,其他客户端再次尝试创建 ZNode,获取分布式锁。

分布式队列

利用 Zookeeper 主要能够实现两种分布式队列:
  • 当一个队列的成员都聚齐时,这个队列才可用,否则一直等待所有成员到达,这种是同步队列。 比如一个 job 由多个 task 组成,只有所有 task 完成后,job 才运行完成,可为 job 创建一个 /job 目录,然后在该目录下,为每个完成的 task 创建一个临时的 ZNode,一旦临时节点数目达到 task 总数,则表明 job 运行完成。 

  • 利用 Zookeeper 的临时顺序节点特性,实现 FIFO 即先进先出的队列

https://mp.weixin.qq.com/s/RnluzCntyUGrkte0JcpcQQ

全部评论: 0