[中间件] ZooKeeper使用场景 (补充)

这里是补充下之前ZooKeeper简单入门文章中, 没有说的, 还有一些补充的使用场景

应用场景

1. 选举Master结点

ZooKeeper的强一致性, 可以保证在高并发的情况下结点创建的全局唯一性
利用这个特性可以让多个客户端创建一个指定的结点, 创建成功的结点就是master结点, 其他结点发现已经存在指定的结点的情况下自动作为从机加入集群
每个机器都可以订阅master创建的临时结点, 当master挂掉的时候临时结点就会消失, 此时所有的从机可以通过相同的方式再次选举出Master

2. 分布式锁实现 (补充)

互斥锁实现

zk 是强一致性的, 可以在高并发的情况下保证结点创建的全局唯一性, 可以让zk通过创建指定结点来实现互斥锁的上锁, 又可以通过监听机制来让客户端及时知道锁释放的时机, 同时可以使用临时结点来保证锁释放的问题, 当客户端挂了之后结点自然也挂掉了, 分布式锁会自动释放

读写锁 ( 共享锁 ) 实现

一样维护一个结点, 不过读取操作需要遍历前面的操作有无写操作, 如果有写操作就不能进行读取, 需要订阅等待写锁释放
写就判断前面是否有结点, 有就不能获取写锁, 需要等待前面的读或写锁释放

3. 唯一ID生成

可以使用ZK代替UUID生成全局唯一ID, 同时可以保证全局ID的有序性

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值