Leader、Follower、Observer中的RequestProcess整理:
https://www.processon.com/view/link/5e993d5de0b34d6feab4b435
Zookeeper集群为了保证数据一致性,利用两阶段提交机制。
对于Leader节点和非Leader节点(Follower或Observer)在处理读写请求时是不一样的。
|
Leader节点 |
非Leader节点(Follower或Observer) |
读请求 |
从当前节点直接读数据 |
从当前节点直接读数据 |
写请求 |
直接进行两阶段提交 |
把请求转发给Leader节点 |
所以,我们只分析Zookeeper集群是怎么处理写请求的。
某个ZookeeperServer在处理写请求时,主要分为以下几步:
- 针对当前请求生成日志(Txn)
- 持久化日志(持久化Txn)
- 执行日志,更新内存(根据Txn更新DataBase)