1. ⾸先集群启动时,会先进⾏领导者选举,确定 哪个节点是Leader ,哪些节点是 Follower Observer
  2. 然后Leader会和其他节点进⾏ 数据同步 ,采⽤ 发送快照 发送Diff⽇志 的⽅式
  3. 集群在⼯作过程中,所有的写请求都会交给Leader节点来进⾏处理,从节点只能处理读请求
  4. Leader节点收到⼀个写请求时,会通过 两阶段机制 来处理
  5. Leader节点会将该写请求对应的⽇志发送给其他Follower节点,并等待Follower节点持久化⽇志成功
  6. Follower节点收到⽇志后会进⾏持久化,如果持久化成功则发送⼀个Ack给Leader节点
  7. 当Leader节点收到半数以上的 Ack 后,就会开始提交,先更新Leader节点本地的内存数据
  8. 然后发送 commit 命令给 Follower 节点,Follower节点收到commit命令后就会 更新各⾃本地内存数据
  9. 同时Leader节点还是将当前写请求直接发送给Observer节点,Observer节点收到Leader发过来的写请求后直接执⾏更新本地内存数据
  10. 最后Leader节点返回客户端写请求响应成功
  11. 通过 同步机制 两阶段提交机制 来达到 集群中节点数据⼀致

 

 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐