目录
1. ZK集群角色
Leader
-
- 处理所有读写请求,只能有一个Leader。
- 收到写请求,先记录事务日志,然后给Follower节点发送同步数据的请求
- 只有一半以上的节点写事务日志成功,才会更新内存数据
Follower
-
- 只能处理读请求,参与Leader选举。
- 收到写请求会转发给Leader处理
- Follower收到同步数据的请求,也会记录事务日志,然后响应ACK
Observer
-
- 只能处理读请求,收到写请求转发给Leader,不参与Leader选举
- 由于不参与过半机制,所以每增加一台Observer,可以分担读请求的压力,并不影响服务端的性能
2. ZK选举原理
流程图链接:ZK-3.5.8 选举原理| ProcessOn免费在线作图,在线流程图,在线思维导图
3. ZK 集群启动流程和选举机制源码分析
流程图链接:ZK-3.5.8 集群启动源码分析| ProcessOn免费在线作图,在线流程图,在线思维导图
如何找源码启动入口
ZOOMAIN="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.local.only=$JMXLOCALONLY org.apache.zookeeper.server.quorum.QuorumPeerMain"
4. ZK 集群启动之多级队列架构设计解读
流程图链接:ZK多级队列架构| ProcessOn免费在线作图,在线流程图,在线思维导图
5. ZK 客户端发起写请求流程分析
流程图链接:ZK-3.5.8 客户端发送写请求| ProcessOn免费在线作图,在线流程图,在线思维导图
6. ZK 服务端处理请求责任链流程分析
流程图链接:ZK-3.5.8 服务端处理责任链| ProcessOn免费在线作图,在线流程图,在线思维导图
7. ZAB协议流程分析
流程图链接:ZAB协议处理流程| ProcessOn免费在线作图,在线流程图,在线思维导图