Raft共识算法

共识算法

  共识是分布式系统容错的基本问题。共识涉及多个服务器数据达成一致。一旦集群中的所有节点就数据做出有效决定之后,该决定就是最终的决定。当大多数节点(超过半数支持)则集群数据进行改变。所以,如过有5台服务器,这当中如果挂掉了2台,那么集群照样运行。但如果有更多的服务器挂掉,集群就会停止运行。

什么是Raft

   首先,容错和性能方面与 Paxos 相当,不同之处在于它被分解为相对独立的子问题,并且简单明了的解决了实际系统所需的所有主要部分。

相关术语介绍

   在 Raft 中,所有的角色分为三类:

  • Leader (领袖)
  • Follower (群众)
  • Candidate (候选人)
  • Term (任期)
       类似于民主社会,领袖由民众选出。集群中所有的参与者都是群众。最初没有领袖,此时,开始发起一轮选举。与现实民主社会一致,所有参与者都是 候选人(Candidate) 所有参与者都可以参与选举,任何人都可以投票给其他参与者(包括自己),任何参与者都可以接受投票。一轮投票过后,得票数超过半数者成为新一任 Leader ,领袖开始这一届 任期 (Term),其他的参与者变为 Follower,从 Leader 处同步数据。

Leader 选举过程

   假如,现在集群中有 A、B、C 三个节点。最开始三个节点都是

raft共识算法是一种分布式一致性算法,用于解决分布式系统中节点之间达成一致性的问题。它主要包含了Leader选举、日志复制和安全性等基本机制。 在raft算法中,节点分为Leader、Follower和Candidate三种状态。初始状态下所有节点都是Follower,然后它们通过相互通信进行Leader选举。选出的Leader负责接收客户端请求并进行日志复制等操作。如果Leader出现故障或无法通信,那么其他节点会重新进行选举,选出新的Leader。 日志复制是raft算法的关键过程,Leader负责将客户端请求记录在日志中,然后将日志复制给所有的Follower节点。Follower节点在接收到Leader的日志之后进行存储,然后发送应答给Leader确认。只有当大多数节点都复制了同一条日志之后,这条日志才算是已提交的。 raft算法还通过逻辑时钟和心跳机制来保证系统的一致性。每个节点都有自己的逻辑时钟,用于识别事件的顺序。Leader节点会定期发送心跳信号给Follower节点,以确保它们的存活状态。 在raft算法中,安全性是非常重要的一部分。它通过限制节点之间的信息交换,避免了“脑裂”等问题的发生。同时,每个节点都有持久性的存储,当节点宕机之后可以通过快照恢复。 总的来说,raft共识算法通过Leader选举、日志复制和安全性等机制,实现了分布式系统中节点之间的一致性。它比Paxos算法更容易理解和实现,因此在实际应用中被广泛使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值