分布式一致性算法

本文深入探讨了一致性算法在分布式系统中的应用,重点介绍了Paxos和Raft两种主流算法的工作原理,以及它们如何帮助系统在面对节点故障时达成共识。此外,还涉及了拜占庭错误的处理方式及相应的共识算法,如BFT、PoW和PoS等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一致性算法

参考:raft算法详解

非拜占庭错误

在分布式系统中,数据在数百或数千个节点上进行复制,需要有一些容错机制或共识算法,如果这些节点的一部分失败,整个系统仍然需要达成共识。假设当一个节点出现故障时,它只是停止工作,不会回复消息。一般可以使用 Paxos、Raft 及其变种,分布式数据库设计一般都是基于paxos或raft算法。

Paxos

Paxos完成一次写操作需要两次来回,分别是prepare/promise, 和 propose/accept:
第一次由提交者Leader向所有其他服务器发出prepare消息请求准备,所有服务器中大多数如果回复诺言承诺就表示准备好了,可以接受写入;第二次提交者向所有服务器发出正式建议propose,所有服务器中大多数如果回复已经接收就表示成功了。

Raft

三种角色

  • Leader: 处理所有客户端交互,日志复制等,一般一次只有一个Leader.
  • Follower: 类似选民,完全被动
  • Candidate候选人: 类似Proposer律师,可以被选为一个新的领导人。
    初始全部都是Follower,一段时间没有接收到leader的消息就会有candidate产生,然后开启选举,获取超过一半的选票就可以当选,如果同票,这两个candidate再次来一轮。

拜占庭错误

主流共识算法介绍
对于要能容忍拜占庭错误的情况,一般包括 BFT 系列、PoW 系列算法等。
拜占庭容错中,错误节点最多不能超过1/3.
从概率角度,BFT 系列算法是确定的,一旦达成共识就不可逆转;而 PoW 系列算法则是不确定的,随着时间推移,被推翻的概率越来越小。

  • PoW(Proof of Work,工作量证明)
  • PoS(Proof of Stake,权益证明)
  • DPoS(Delegate Proof of Stake,委托权益证明)
  • PBFT(Practical Byzantine Fault Tolerance,实用拜占庭容错算法)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值