【分布式系列文章】大名鼎鼎的Paxos算法~

本文介绍了Paxos算法在分布式系统中的作用,旨在保证数据一致性。文章详细阐述了Basic-Paxos模型,包括角色、执行步骤和异常情况分析,并指出其存在的活锁问题和性能挑战。接着,文章引入Multi-Paxos以优化提案流程,减少RPC调用并简化角色。最后,提到Raft和ZAB协议作为Paxos的延伸,将在后续文章中探讨。

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

写在前面

接触分布式已数月有余,从zk到dubbo到springcloud都只是停留在应用层,此系列文章将深入探讨分布式背后的实现算法,如何保证分布式下的容灾与数据一致性,由于笔者水平有限,只是以自己的理解记录分布式算法实现,严谨的推导过程仍需另寻其他神犇~

阅读前请先了解CAP和BASE理论以及简单理解什么是拜占庭问题,本文默认你了解这些分布式基础理论

一、首先来宏观理解一下Paxos算法

1.Paxos算法是用来解决什么问题的?

  • 明确问题:数据不能单点存放,鸡蛋不能放在同一个篮子里,所以如何在保证高度容错性下保证数据一致性就是Paxos的使命
  • 更详细点说:在分布式系统中发生网络分区比如机器宕机或网络异常,Paxos需要解决的问题就是在上述情况下如何正确且快速地在集群内对某个数据达成一致

2.Paxos是强一致性算法么?

  • 强一致性算法是指:任意时刻对不同节点的访问具有相同的视图,否则无法得到数据,很明显强一致性严重影响了性能,所以Paxos有一个多数派机制,也就是每次写保证写入大于N/2个节点,每次保证从大于N/2个节点中读,来维护一致性

  • 说到这个问题我们来聊聊ZK,ZK使用的ZAB协议就是由Paxos算法演变而来,是multi-Poxos的一种,在ZK官方文档中有这么一个描述:

Sometimes developers mistakenly assume one other guarantee that ZooKeeper does not in

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值