分布式中的算法和协议:CAP、BASE、2PC、3PC、PAXOS

本文详细介绍了分布式系统中的关键算法和协议,包括CAP原则、BASE原则以及2PC、3PC和PAXOS共识算法。CAP原则指出在分布式系统中,一致性、可用性和分区容错性无法同时满足。BASE原则则是对CAP原则的妥协,强调基本可用、软状态和最终一致性。2PC和3PC是解决分布式事务的协议,分别存在单点故障和阻塞等问题。PAXOS算法则是一种高效的一致性算法,通过Proposer、Acceptor和Learner的角色实现分布式系统的共识。
摘要由CSDN通过智能技术生成



分布式中的算法和协议:CAP、BASE、2PC、3PC、PAXOS


CAP原则

CAP原则又称CAP定理,指的是在一个分布式系统中, Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),三者无法同时满足。

  • 一致性(C):在分布式系统中的所有数据备份,在同一时刻是否同样的值。(等同于所有节点访问同一份最新的数据副本,与volatile关键字的可见性效果类似。)
  • 可用性(A):在集群中一部分节点故障后,集群整体是否还能响应客户端的读写请求。(对数据更新具备高可用性)
  • 分区容忍性(P):当节点间出现网络分区,照样可以提供服务。以实际效果而言,分区相当于对通信的时限要求。系统如果不能在时限内达成数据一致性,就意味着发生了分区的情况,必须就当前操作在C和A之间做出选择。

CAP

CAP原则是NOSQL数据库的基石。根据CAP原则,将NoSQL数据库分成了满足CA、CP或AP原则三大类:

  • CA:单点集群,满足一致性、可用性的系统,通常扩展性较差,甚至没办法部署子节点,这是违背分布式系统设计的初衷的。传统的关系型数据库RDBMS:Oracle、MySQL就是CA。
  • CP:满足一致性、分区容错性的系统,通常性能不是很高。相当于每个请求都需要在服务器之间保持强一致,而P(分区)会导致同步时间无限延长(也就是等待数据同步完才能正常访问服务),一旦发生网络故障或者消息丢失等情况,就要牺牲用户的体验
  • AP:满足可用性、分区容错性的系统,通常对一致性的要求低一些。一旦分区发生,节点之间可能会失去联系,为了高可用,每个节点只能用本地数据提供服务,而这样会导致全局数据的不一致性。



BASE原则

BASE是Basically Available(基本可用)、Soft state(软状态)和Eventually consistent(最终一致性)三个短语的简写,BASE是对CAP中一致性和可用性权衡的结果,其来源于对大规模互联网系统分布式实践的结论,是基于CAP定理逐步演化而来的。

其核心思想是即使无法做到 强一致性(Strong consistency),但每个应用都可以根据自身的业务特点,采用适当的方式来使系统达到 最终一致性

  • 基本可用

基本可用是指分布式系统在出现不可预知故障的时候,允许损失部分可用性。但绝不是指系统不可用。

例如响应时间上的损失:正常情况下,一个在线搜索引擎需要0.5秒内返回给用户相应的查询结果,但由于出现异常(比如系统部分

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值