写点什么

CAP/BASE

作者:苏格拉格拉
  • 2022-11-11
    浙江
  • 本文字数:1243 字

    阅读完需:约 4 分钟

CAP 定理

一个分布式的系统中,涉及共享数据问题时,以下三个特性最多只能同时满足其中两个:

  • 一致性Consistency):代表数据在任何时刻、任何分布式节点中所看到的都是符合预期的。

  • 可用性Availability):在集群中一部分节点故障后,集群整体是否还能响应客户端的读写请求。

  • 可用性密切相关两个指标:可靠性(Reliability)和可维护性(Serviceability)。可靠性使用平均无故障时间(Mean Time Between Failure,MTBF)来度量;可维护性使用平均可修复时间(Mean Time To Repair,MTTR)来度量。可用性衡量系统可以正常使用的时间与总时间之比,其表征为:A=MTBF/(MTBF+MTTR),即可用性是由可靠性和可维护性计算得出的比例值,譬如 99.9999%可用,即代表平均年故障修复时间为 32 秒。

  • 分区容忍性Partition Tolerance):分布式环境中部分节点因网络原因而彼此失联后,即与其他节点形成“网络分区”。分区容忍性即是否允许出现网络分区。

CAP 的取舍

如果舍弃 C、A、P 时所带来的不同影响。

  • 如果放弃分区容忍性(CA without P),意味着我们将假设节点之间通信永远是可靠的。永远可靠的通信在分布式系统中必定不成立的,所以只要用到网络来共享数据,分区现象就会始终存在

  • 如果放弃可用性(CP without A),意味着我们将假设一旦网络发生分区,节点之间失联,此时即使停止对外服务,也要等到节点恢复,即保证强一致性。在现实中,选择放弃可用性的 CP 系统情况一般用于对数据质量要求很高的场合中,银行、证券这些涉及金钱交易的服务,宁可中断也不能出错。

  • 如果放弃一致性(AP without C),意味着我们将假设一旦发生分区,节点之间所提供的数据可能不一致,但仍优先保证对外的可用。选择放弃一致性的 AP 系统目前是设计分布式系统的主流选择,因为 P 是分布式网络的天然属性,而 A 通常是建设分布式的目的

BASE

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

BASE 是对 CAP 中一致性和可用性权衡的结果,其来源于对大规模互联网系统分布式实践的结论,是基于 CAP 定理逐步演化而来的,其核心思想是即使无法做到强一致性(Strong consistency),但每个应用都可以根据自身的业务特点,采用适当的方式来使系统达到最终一致性(Eventual consistency)。


  • 基本可用:基本可用指分布式系统在出现不可预知的故障时候,允许损失部分可用性,保证核心服务可用。响应时间上的损失(正常 0.5ms 之内的故障时候响应延时为 1-2 秒了)和功能上的损失(秒杀时候的降级数据)


  • 软状态:是指允许系统中的数据存在中间状态,并认为该中间状态的存在不会影响系统的整体可用性,即允许系统在不同节点的数据副本之间进行数据听不的过程存在延时。


  • 最终一致性:系统中所有的数据副本,在经过一段时间的同步后,最终能够达到一个一致的状态。因此,最终一致性的本质是需要系统保证最终数据能够达到一致,而不需要实时保证系统数据的强一致性。


参考:

https://icyfenix.cn/architect-perspective/general-architecture/transaction/distributed.html

发布于: 刚刚阅读数: 3
用户头像

还未添加个人签名 2018-08-22 加入

还未添加个人简介

评论

发布
暂无评论
CAP/BASE_分布式_苏格拉格拉_InfoQ写作社区