标签:协议 comm shu 使用 fill 转发 tps webp origin
etcd 是一个分布式的k/V存储系统。核心使用了RAFT分布式一致性协议。一致性这个概念,它是指多个服务器在状态达成一致,但是在一个分布式系统中,因为各种意外可能,有的服务器可能会崩溃或变得不可靠,它就不能和其他服务器达成一致状态。这样就需要一种Consensus协议,一致性协议是为了确保容错性,也就是即使系统中有一两个服务器当机,也不会影响其处理过程。
为了以容错方式达成一致,我们不可能要求所有服务器100%都达成一致状态,只要超过半数的大多数服务器达成一致就可以了,假设有N台服务器,N/2 +1 就超过半数,代表大多数了。
Leader选举(Leader Election)
日志同步 (Log Replication)
集群状态的正确性 (Safety)
leader
处理所有客户端交互,日志复制等,一个任期只有一个。
follower
完全被动的选民,是只读的。
candidate
候选人,可以被选举为新领导。
状态之间的转换:
如上图,蓝色代表 Election 模式,绿色代表 Operation 模式
etcd服务启动后,会进入 follower 状态,leader 心跳超时后会进入选举状态。
选举总体流程图如下:
选举流程分解
初始状态都是Follower
S1 超时, 变为Candidate,开始选举, 发起投票请求
S1 变为Leader
S2 和 S3 同意投票给S1
Leader S1开始接受客户端写请求
超过多数的Follower将数据成功同步到log后,Leader会将该条数据更新为Committed状态,Committed index会随着增长。
选举的正确性
日志的一致性
标签:协议 comm shu 使用 fill 转发 tps webp origin
原文地址:https://www.cnblogs.com/sunsky303/p/11451755.html