客户端向服务端写数据流程
1. 写流程之写入请求直接发送给Leader节点
- 如果客户端写数据请求的是zk集群的leader, leader收到请求后,leader会自己执行写数据操作。
- 同时会将写数据请求下达给其他follower。
- follower写完数据后会返回给leader一个ack应答。
- leader判断写数据是否超过节点半数,超过半数就返回客户端ack应答。
- leader会继续下达写数据命令给剩下没有写数据的节点,继续写数据。
- 剩下的follower完成写数据后,向leader返回ack应答。
2. 写流程之写入请求发送给follower节点
- 如果客户端写数据请求的是zk集群的follower, follower会首先将请求转发zk集群的leader。
- leader自己写数据,同时会将写数据请求下达给其他follower。
- follower写完数据后会返回给leader一个ack应答。
- leader判断写数据是否超过节点半数,超过半数就返回follower一个ack应答。
- follower会向客户端返回写完数据的ack应答。
- leader会继续下达写数据命令给剩下没有写数据的节点,继续写数据。
- 剩下的follower完成写数据后,向leader返回ack应答。