braft

百度正式开源其Raft一致性算法实现braft

百度安全验证

raft-zh_cn/raft-zh_cn.md at master · maemual/raft-zh_cn · GitHub

Raft

Raft Consensus Algorithm

MIT6.824

MIT6.824分布式系统课程中文翻译 - 知乎

MIT 6.824: lab2 Raft Consensus Algorithm Implementation

分布式点滴 - 知乎

MIT 6.824 2020 Raft 实现细节备忘 | 木鸟杂记

作者:无名小卒
链接:https://www.zhihu.com/question/650964820/answer/3454071209
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

Paxos:由Leslie Lamport开发,Paxos是一族用于解决不可靠处理器(或节点)网络中共识问题的协议。像Paxos这样的共识算法对于在分布式系统中,在存在故障的情况下,就单个值达成一组节点的共识至关重要。Paxos以其容错性而闻名,并且已经成为许多分布式系统的基础,尽管它也以其复杂性而著称。

Raft:Raft是一个共识算法,设计为Paxos的一个更易于理解和实现的替代方案。它将共识问题分解为三个相对独立的子问题:领导者选举、日志复制和安全性。Raft确保在任何给定时间都有一个一致的领导者,并简化了分布式日志的管理。

Zab(ZooKeeper原子广播):Zab是Apache ZooKeeper用于协调分布式进程的协议。它旨在管理复制日志并确保所有节点的一致性。Zab特别适用于管理分布式系统中的协调和配置信息。

两阶段提交(2PC):两阶段提交协议是一种原子提交协议类型,设计用于确保分布式系统中全有或全无的事务执行。它涉及两个阶段:准备阶段,其中一个协调器节点准备事务中涉及的所有节点;以及提交阶段,根据节点间的共识,事务要么提交要么中止。

三阶段提交(3PC):作为2PC的扩展,三阶段提交协议增加了一个额外的阶段,以减少阻塞的机会,即所有事务参与者无限期地相互等待的情况。3PC旨在提供非阻塞的原子提交,但它更复杂,仍然容易受到某些故障情况的影响。

向量时钟:向量时钟是一种用于捕获分布式系统中事件的部分排序并检测因果关系违规的方法。它们允许系统理解操作之间的“先于”关系,这对于解决冲突和维持分布式数据库和文件系统中的一致性至关重要。

Dynamo风格的一致性哈希:由Amazon的Dynamo引入,一致性哈希是一种用于在集群中分布数据的技术,以最小化添加或删除节点时的重组。它在NoSQL数据库和分布式缓存系统中特别有用,以确保数据均匀分布,并在节点失败的情况下仍然可访问。

流言协议:流言协议或传染协议,用于在分布式系统中实现最终一致性。它们通过让节点随机与其他节点交换信息,像病毒一样将数据传播到整个系统中。对于不需要立即一致性但可以接受最终一致性的系统来说,流言协议非常有用。

选择时的关键考虑因素:

一致性需求: 您的系统需要多严格的一致性?(强一致性与最终一致性)

故障容忍: 系统需要处理节点或网络分区的故障吗?

可扩展性: 系统随着规模扩大将如何表现?

复杂性: 实现和维护的复杂性是否是一个主要关注点?

附加说明:

在大规模分布式系统中,这些算法的组合可能被用于平衡一致性、可用性和性能。

像Paxos结合最终数据传播的混合方法也在获得关注。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值