
Zookeeper
文章平均质量分 66
姜希成
岁月流逝,将来的某时某处,我会在叹息中想起,林间的路分成两股,而我选择了人迹罕至之徒,那一刻起,一切差别已成定铸。
展开
-
Zookeeper-Leader选举
整个zookeeper选举底层可以分为选举应用层和消息传输层,应用层有自己的队列统一接收和发送选票,传输层也设计了自己的队列,但是按发送的机器分了队列,避免给每台机器发送消息时相互影响,比如某台机器如果出问题发送不成功则不会影响对正常机器的消息发。原创 2024-09-10 14:26:53 · 258 阅读 · 0 评论 -
Zookeeper-curator
【代码】Zookeeper-curator。原创 2024-09-10 14:13:32 · 286 阅读 · 0 评论 -
Zookeeper-分布式锁&注册中心
非公平锁(羊群效应):所有的锁请求者都 watch 锁持有者,当代表锁持有者的 znode 被删除以后,所有的锁请求者都会通知到,但是只有一个锁请求者能拿到锁。由于ZooKeeper的高可用性,因此在并发量不是太高的应用场景中,还是推荐使用ZooKeeper的分布式锁。优点:具备高可用、可重入、阻塞锁特性,可解决失效死锁问题,使用起来也较为简单。在高性能、高并发的应用场景下,不建议使用ZooKeeper的分布式锁。缺点:因为需要频繁的创建和删除节点,性能上不如Redis。公平锁:临时顺序 znode。原创 2024-09-10 14:11:23 · 276 阅读 · 0 评论 -
Zookeeper-特性
ZooKeeper的数据模型是层次模型,层次模型常见于文件系统。并采用 ZAB 协议的原子广播协议,将事务请求以 Proposal 提议广播到所有 Follower 节点。ZooKeeper的层次模型称作Data Tree,Data Tree的每个节点叫作Znode。注意 Observer 节点只负责同步 Leader 数据,不参与 2PC 数据同步过程。Zookeeper 使用单一的主进程 Leader 来接收和处理客户端所有事务请求。follower在接到写请求时会把写请求转发给leader来处理。原创 2024-09-10 14:05:12 · 853 阅读 · 0 评论 -
Zookeeper-ZAB
对于客户端发送的写请求,全部由 Leader 接收,Leader 将请求封装成一个事务 Proposal,将其发送给所有 Follwer。ZAB 协议是为分布式协调服务 Zookeeper 专门设计的一种支持 崩溃恢复 和 原子广播 的协议。高 32 位代表了每代 Leader 的唯一性,低 32 代表了每代 Leader 中事务的唯一性。在 ZAB 协议的事务编号 ZXID 设计中,ZXID 是一个 64 位的数字。ZAB 协议的消息广播过程使用的是一个原子广播协议,类似一个 两阶段提交过程。原创 2024-09-09 10:46:19 · 747 阅读 · 0 评论