分布式协议学习笔记(二) 日志复制

一旦Leader选定以后,咱们将复制全部的操做到每一个节点上。服务器

这个是经过心跳包中的Append Entries message结构体来进行实现的网络

 

客户端发送一个操做到Leader中(即便客户端发送操做到Follower,操做也会被转发到Leader处理)分布式

Leader将操做附加到本身的Log日志中学习

基本操做记录

Leader将随后将操做发送给Follower,Follower再回复给Leader,当Leader确认该操做被一半以上设备接受,则提交该操做Log(正式记录),而且回复给客户端操做处理结果3d

再追加一个+2操做日志

网络分区

如今假设有5个服务器节点,因为某种缘由被切割成两个网络分区.根据以前得的论述,在通过一段选举超时间后,各个区域都会选举出各自的Leader(固然 若是被隔开的是两个Folloer 那么就只能选举出一个新的Leader和两个长期处于选举状态的节点)blog

假设有不一样的客户端分别给不一样的区域的Leader发送操做. 设置8的操做会被提交,由于该操做能够被过半的节点接受,而设置3的操做不行。学习笔记

撤销网络分割后,咱们会看到,因为后选举出来的Leader具备更高的TERM计数,因此设置8的操做被更新到每一个节点上im

A B节点会回滚本身以前的Log,而且更新新的Leader的Log记录客户端

相关文章
相关标签/搜索