一、写流程之写入请求直接发送给Leader节点
1)客户端给Leader节点发送了一个写数据的请求,Leader会马上开始写操作,并通知第二台服务器进行写操作;
2)服务器进行完写操作之后,发送回应告知Leader节点已完成写操作,Leader节点检测完成写操作的服务器是否超过半数(例如上面三台服务器,只要有两台完成),超过半数立即给客户端发送通知已完成写操作;
3)后续Leader节点继续通知未完成写操作的服务器进行写操作,服务器写完则回答Leader节点已完成写操作。
二、写流程之写入请求直接发送给follower节点
1)客户端给follower节点发送了 一个写操作请求,follower没有写权限,会马上把写操作请求发送给Leader节点;
2)Leader节点接收到follower节点转发的写操作请求,会马上开始写操作,并通知其他服务器开始写操作;
3)当Leader服务器检测到超过半数的机器完成了写操作,就会通知之前收到写请求的follower节点已完成写操作,这个follower节点整理信息后再通知客户端已完成写操作。