CAP定理和BASE定理

作者: zhl 分类: 分布式 发布时间: 2024-04-12 21:07

CAP定理

CAP理论为:一个分布式系统最多只能同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance)这三项中的两项。

  • —致性(Consistency)

    一致性指"all nodespsee the same data at the same time",即更新操作成功并返回客户端完成后,所有节点在同一时间的数据完全一致(即强一致性)。

  • 可用性(Availability)

    可用性指"Reads and writes always succeed",即服务一直可用,而且是正常响应时间。

  • 分区容错性(Partition tolerance)

    分区容错性指"the system continues to operate despite arbitrary message loss or failure of part of the system",即分布式系统在遇到某节点或网络分区故障的时候,仍然能够对外提供满足一致性或可用性的服务。——避免单点故障,就要进行冗余部署,冗余部署相当于是服务的分区,这样的分区就具备了容错性。

分布式系统会进行冗余部署,避免单点故障。=》分区容错性

BASE定理

实际是对CAP理论的延申。

  • 基本可用(Basically Available)

    基本可用是指分布式系统在出现故障的时候,允许损失部分可用性,即保证核心可用(熔断降级)。
    电商大促时,为了应对访问量激增,部分用户可能会被引导到降级页面,服务层也可能只提供降级服务。这就是损失部分可用性的体现。

  • 软状态(Soft State)

    软状态是指允许系统存在中间状态,而该中间状态不会影响系统整体可用性。分布式存储中一般一份数据至少会有三个副本,允许不同节点间副本同步的延时就是软状态的体现。mysql replication的异步复制也是一种体现。

  • 最终一致性(Eventual Consistency)

    最终一致性是指系统中的所有数据副本经过一定时间后,最终能够达到一致的状态。弱一致性和强一致性相反,最终一致性是弱一致性的—种特殊情况。

Zookeeper在数据同步时,追求的并不是强一致性,而是顺序一致性(事务id的单调递增)

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注