![](https://img-blog.csdnimg.cn/b49ba8db60744157ac0cbf7384030280.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Zookeeper源码解读
文章平均质量分 95
Zookeeper实战、底层原理、运维
徐同学呀
致力于java底层、源码、中间件、后端领域学习和探索。热爱源码,热爱生活,持续改进,坦诚合作!
展开
-
ZooKeeper客户端源码(零)——客户端API使用
ZooKeeper客户端所有对节点的请求API都有同步阻塞和异步回调两种方式,异步回调就是传入一个回调函数,响应处理时进行回调通知。原创 2022-03-16 09:00:00 · 1044 阅读 · 4 评论 -
ZooKeeper客户端源码(三)——Watcher注册与通知
ZooKeeper的Watcher机制是一个跨进程的发布/订阅功能,客户端与服务端都需要保存数据节点和Watcher的关系,当节点的状态信息变更时就会触发一些事件,服务端先从自己的内存中找出节点对应的Watcher列表,然后一个个遍历生成事件通知消息,再远程发送给客户端;客户端接收到对应消息后,解析出Wather事件信息,得知是哪个数据节点,触发什么事件类型,然后客户端同样从内存中找到节点对应的Watcher列表,真正触发事件回调。原创 2022-03-14 08:30:00 · 1507 阅读 · 2 评论 -
ZooKeeper客户端源码(二)——向服务端发起请求(顺序响应+同步阻塞+异步回调)
客户端与服务端通信的最小单元是Packet。所有请求在发送给服务端之前,都需要先构建一个Packet,再将Packet提交给请求处理队列outgoingQueue并唤醒SendThread线程,最后处理写事件,从outgoingQueue中取出Packet,将其序列化写入网络发送缓冲区。原创 2022-03-13 10:18:17 · 4667 阅读 · 7 评论 -
ZooKeeper客户端源码(一)——向服务端建立连接+会话建立+心跳保持长连接
ZooKeeper客户端如何向服务端建立连接?如果连接断了如何重试?会话建立的流程是怎样的?如何保持长连接?心跳?原创 2022-03-10 10:06:07 · 4011 阅读 · 6 评论 -
ZooKeeper源码阅读心得分享+源码基本结构+源码环境搭建
ZooKeeper源码的脉络就像一个迷宫,要想玩这个迷宫游戏,必须找到迷宫的入口。最近把ZooKeeper源码看了个大概,有一些心得想和大家分享和探讨。原创 2022-03-07 11:05:44 · 3982 阅读 · 9 评论 -
Zookeeper会话管理源码深入探讨
深入探讨会话创建、分桶管理、清理和激活原理。原创 2022-03-03 14:26:10 · 2664 阅读 · 9 评论 -
ZooKeeper Dynamic Reconfiguration(ZooKeeper 动态配置重构)
2022年要像冰冰一样努力突破自己翻译 2022-01-03 08:00:00 · 1675 阅读 · 3 评论 -
Observers: Scaling ZooKeeper Without Hurting Write Performance
观察员是集群的无表决权成员,他们只听取投票结果,而不听取达成协议的协议。除了这个简单的区别之外,观察者的功能与跟随者完全相同——客户端可以连接到他们,并向他们发送读写请求。观察者像追随者那样将这些请求转发给领导者,他们只是等待投票结果。翻译 2021-12-26 16:24:06 · 219 阅读 · 0 评论 -
ZooKeeper运维——集群动态迁移与扩缩容(不停机+不丢失)
zk集群的动态迁移与扩缩容需要做到两个不:不停机!不丢失!原创 2021-09-27 08:30:00 · 6451 阅读 · 28 评论 -
ZooKeeper集群Leader选举理论解读(初次选举和故障恢复)
ZooKeeper 参考 Paxos算法,专门设计了一种支持崩溃恢复的原子广播协议 Zab(Zookeeper Atomic Broadcast),Leader选举是其核心思想,也是保证ZooKeeper数据一致性的关键所在。原创 2021-09-25 16:12:26 · 1197 阅读 · 3 评论 -
ZooKeeper运维——数据备份与恢复(事务日志+快照日志,万字总结,你想要的都有)
事务日志是增量数据,快照日志是某个时刻全量数据,合二为一可以最大限度恢复数据。通过日志文件恢复数据,取最新的快照日志文件反序列化生成一个 DataTree,然后用事务日志对这棵 DataTree做数据修正。原创 2021-09-23 09:49:42 · 4247 阅读 · 31 评论 -
ZooKeeper监控数据采集方案——Telegraf Plugin
zookeeper监控数据的收集不外乎是对四字命令运用,Telegraf 是现成的高性能收集脚本,与influxdb搭配最佳。原创 2021-09-09 22:10:43 · 2200 阅读 · 25 评论 -
分布式系统的基石之ZooKeeper——基本原理+场景应用+集群搭建(最强万字入门指南)
ZooKeeper是一个可靠的、强一致性的、没有单点故障的分布式数据存储系统。因为其出色的设计(ZAB一致性算法,Watch机制等)和协调能力,使得它成为很多分布式系统的基石,就像其名称动物园管理员一样,做着比较基层的管理协调工作,比如配置管理,命名服务,服务注册发现等。原创 2021-09-12 23:56:52 · 2761 阅读 · 30 评论