简单说说:Raft一致性共识算法

Raft一致性算法基于复制状态机原理,确保集群在各种错误情况下维持一致性。它具有安全性保证,即使面对网络延迟和节点故障,也能正确处理。算法分为leader、follower和candidate三种状态,通过RequestVote和AppendEntries RPCs进行通信。当节点间失去联系或选举超时时,状态会发生转换,以确保集群的稳定和可用性。
摘要由CSDN通过智能技术生成

一、复制状态机

复制状态机(Replicated state machine)的概念就是,相同的初始状态 + 相同的输入 = 相同的结束状态。也就意味在多节点集群中,从相同的初始状态开始,执行相同的一串命令,产生相同的最终状态。

在 raft 中,leader将客户端请求封装成一个一个 log entry 中,将这些 log 发送到 follow 节点,然后大多数的节点按照同样的顺序应用 log entry 中的 command,依据复制状态机的理论,大家最后的状态是会一致的。在分布式场景中,各个节点就是依靠共识算法,保证命令序列的一致,从而始终保持它们的状态一致,从而实现高可用性。

论文提及raft算法的特性有以下几点:

  • 安全性保证(绝对不会返回一个错误的结果):在非拜占庭错误情况下,包括网络延迟、分区、丢 包、冗余和乱序等错误都可以保证正确。(这里的拜占庭错误指的是节点的本身就不可靠,变成集群中的恶意节点,它为了阻挠真实信息的传递以及有效一致的达成,会向各个节点发送前后不一致的信息)
  • 可用性:集群中只要有大多数的机器可运行并且能够相互通信、和客户端通信,就可以保证可用。 因此,一个典型的包含 5 个节点的集群可以容忍两个节点的失败。服务器被停止就认为是失败。他们当有稳定的存储的时候可以从状态中恢复回来并重新加入集群。
  • 不依赖时序来保证一致性:物理时钟错误或者极端的消息延迟只有在最坏情况下才会导致可用性问题。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值