前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >分布式-CAP与BASE

分布式-CAP与BASE

作者头像
lpe234
发布2021-03-02 15:34:22
3820
发布2021-03-02 15:34:22
举报
文章被收录于专栏:若是烟花若是烟花

分布式基本理论CAP与BASE

1 CAP理论

CAP理论是分布式系统中最核心的基础理论,一个分布式系统最多只能同时满足一致性(Consistency)、可用性(Availablity)、分区容错性(Partition Tolerance)三项中的两项。

1.1 CAP的含义

在分布式系统中,由于系统的拆分,P是固定的,CAP的应用模型只能是CP和AP。

1.1.1 Consistency(一致性)

all nodes see the same data at the same time. 所有节点在同一时刻访问的数据副本都是一样的。

要么读取到最新数据,要么读取失败,强调的是数据正确

1.1.2 Availability(可用性)

Reads and writes always succeed.系统提供的服务必须是一直处于可用状态,而且对于用户的每一个请求都能在有限的时间内获得正常的响应(数据有可能并不是最新的)。

一定返回数据,不返回错误,但不保证是最新数据,强调的是不出错

1.1.3 Partition Tolerance(分区容错性)

the system continues to operate despite arbitrary message loss or failure of part of the system. 当部分节点出现消息丢失或网络分区故障时,仍能够对外提供满足一致性和可用性的服务。

系统一直运行,不管内部出现何种数据同步问题,强调的是不挂掉

1.2 CAP理论的应用

通常在分布式系统中,为了保证数据的高可用,通常会设置多个副本,只能在一致性和可用性之间做选择。业务上对一致性的要求会直接反映在系统设计中,典型的就是CP和AP架构。

  • CP架构:放弃可用性,追求一致性和分区容错性。 Zookeeper就是采用CP架构,Zookeeper是一个分布式服务框架,主要解决分布式集群中应用系统的协调和一致性问题。核心算法是ZAB算法,所有设计都是为了一致性。在面对网络分区时,为了保持一致性,它将是不可用的。
  • AP架构:放弃一致性,追求可用性和分区容错性。 Eureka中各个节点都是平等的,几个节点挂掉并不影响正常节点的工作,剩余的节点依旧可以提供注册和查询服务,只要有一个节点存在,就能保证可用性,只不过数据可能不是最新的。

2 BASE理论

BASE理论由ePay架构师提出,是对CAP理论的延伸,核心思想是无法做到强一致性(Strong Consistency),但应用可以采用合适的方式达到最终一致性(Eventual Consistency)

BASE指基本可用(Basically Available)、软状态(Soft State)、最终一致性(Eventual Consistency)。

2.1 BASE的含义
2.1.1 基本可用(Basically Available)

不再追求CAP中的”任何时候,读写都是成功的“,而是系统能够基本运行,一直提供服务。基本可用强调了分布式系统出现不可预知故障时,允许损失部分可用性,比如响应时间变长或者服务被降级。

2.1.2 软状态(Soft State)

软状态对应ACID事务中的原子性,在ACID的事务中,实现的是强一致性。软状态允许系统中的数据存在中间状态,并认为该状态不影响系统的整体可用性,即允许系统在多个不同节点的数据副本存在数据延时。

2.1.5 最终一致性(Eventual Consistency)

最终一致性是弱一致性的特例,强调所有副本数据,在经过一段时间同步后,最终都能达到一致的状态。最终一致的本质是需要系统保证数据最终能够达到一致,而不需要实时保证系统数据的强一致。

3 CAP与BASE关系

CAP描述了一致性、可用性、分区容错性之间的制约关系。BASE理论是CAP理论的实际应用,即在分区和副本存在的前提下,放弃强一致性,实现基本可用。大部分分布式系统都会做这种选择,如NoSQL系统、微服务架构等。

除了CAP和BASE,还有ACID,它是一种强一致性模型,强调原子性、一致性、隔离性、持久性,主要用于数据库实现。Base理论面向的是高可用、高扩展的分布式系统,ACID适合传统金融等业务,在实际场景中,不同业务对数据一致性要求不一样,ACID和BASE往往会结合使用。


参考资料
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 CAP理论
    • 1.1 CAP的含义
      • 1.1.1 Consistency(一致性)
      • 1.1.2 Availability(可用性)
      • 1.1.3 Partition Tolerance(分区容错性)
    • 1.2 CAP理论的应用
    • 2 BASE理论
      • 2.1 BASE的含义
        • 2.1.1 基本可用(Basically Available)
        • 2.1.2 软状态(Soft State)
        • 2.1.5 最终一致性(Eventual Consistency)
        • 参考资料
    • 3 CAP与BASE关系
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档