Raft
文章平均质量分 82
刘三羊
老白程序猿,互相交流(本人擅长go语言,所以博客许多代码都会使用go语言实现)
展开
-
一致性算法 - Raft
一致性算法 - RaftRaft 状态一个 Raft 集群包含若干个服务器节点;通常是 5 个,这允许整个系统容忍 2 个节点的失效,每个节点处于以下三种状态之一:follower(跟随者) :所有结点都以 follower 的状态开始。如果没收到 leader消息则会变成 candidate状态。candidate(候选人):会向其他结点“拉选票”,如果得到大部分的票则成为lea...转载 2018-05-24 20:30:52 · 5423 阅读 · 0 评论 -
Raft 集群成员变更、日志压缩、客户端交互
Raft 集群成员变更、日志压缩、客户端交互集群成员变更在集群服务器发生变化时,不能一次性的把所有的服务器配置信息从老的替换为新的,因为,每台服务器的替换进度是不一样的,可能会导致出现双主的情况,如下图:如上图,Server 1和Server 2可能以 Cold 配置选出一个主,而Server 3,Server 4和Server 5可能以 Cnew 选出另外一个主,导致出现双主。...转载 2018-05-24 20:31:59 · 1368 阅读 · 1 评论 -
用 Go 语言实现 Raft 选主
用 Go 语言实现 Raft 选主选主模块主要包括三大功能:candidate状态下的选主功能leader状态下的心跳广播功能follower状态下的确认功能candidate状态下的选主功能candidate状态下的选主功能需要关注两个方面:何时进入candidate状态,进行选主?选主的逻辑是怎样的?首先,来讨论何时进入candidate状态,进行选主。...转载 2018-05-24 20:32:37 · 2269 阅读 · 5 评论