IT评测·应用市场-qidao123.com

标题: 分布式(一):CAP&BASE理论 [打印本页]

作者: 忿忿的泥巴坨    时间: 2025-3-22 16:46
标题: 分布式(一):CAP&BASE理论
1 CAP理论

1.1 简介

CAP也就是Consistency(一致性)、Availability(可用性)、Partition Tolenrance(分区容错性)这三个单词首字母组合。
在理论计算机科学中,CAP定理(CAP theorem)指出对于一个分布式系统来说,当涉及读写操作时,只能同时满足C、A、P三点中的两点:(而且一定是CP大概是AP,没有CA情况)

   1.什么是网络分区?
  分布式系统中,多个节点之间的网络原来是联通的,但是由于某些故障,比方部门节点出现了问题,节点之间不连通了,整个网络就分成了几块区域,这就叫网络分区。
  2.CA为什么不行?
  假如系统出现分区(不满足P),系统中的某个节点在进行写操作
  CAP定理作为分布式系统设计的焦点理论,其内涵远比常见的"三选二"表述更为深刻。我们有须要从理论演进和工程实践两个维度重新解读:
在分布式系统的设计哲学中,网络分区(Partition tolerance)并非可选项而是必选项。这是由分布式系统的基础特性决定的——任何依赖网络通讯的系统都可能遭遇网络停止、节点故障等分区场景。2012年Eric Brewer在修正论文时特殊夸大,CAP定理的正确解读应当是:当发生网络分区(P)时,系统只能在强一致性(C)和可用性(A)之间二选其一,而非单纯的三者取二。
这种理论演进揭示了两个关键认知:

值得特殊留意的是,CAP定理形貌的是网络分区发生时的极度场景。在超过99%的正常运行时间里,优秀分布式系统(如etcd)通过Raft等共识算法,完全能够同时保证强一致性和高可用性。这种设计哲学启示我们:分布式架构的本质不是静态取舍,而是通过精妙机制(如异步复制、故障转移)来延缓或弱化CAP的约束。
最终架构选择取决于业务本质:证券交易系统必须选择CP来保证订单的确定性,社交媒体的点赞功能则更适合AP架构以保障用户体验。这种选择背后折射的是对数据代价层级的深度理解——有些数据错误是致命的,有些则可以在后续同步中修正。工程师的聪明,就在于在动态变化的网络情况中找到业务需求与技术约束的最优均衡点。


 1.2 CAP现实应用案例

CAP现实应用案例:电商系统设计中的动态权衡
​1.2.1 场景背景

某头部电商平台在"双11"大促期间面临以下业务需求:
1.2.2 技术实现与CAP选择

1. 订单系统(CP架构)​

2. 库存服务(AP架构)​

3. 购物车系统(动态CAP)​

​1.2.3 关键设计启示

​1.2.4 现实中的复杂性


这个案例表明,CAP定理不是非黑即白的选择题,而是需要结合业务场景、故障概率、用户体验等多维度因素进行动态权衡的工程艺术。优秀的分布式系统设计,每每是在不同层级、不同时段对CAP进行风雅化组合应用的效果。
1.3 总结 

        在分布式系统设计与开发过程中,设计者不应将视野范围在CAP理论的基础探讨上,同样需要重视系统的扩展性、高可用性等关键特性。
        根据CAP理论的焦点约束,当系统遭遇网络分区(Partition Tolerance)时,必须在数据一致性(Consistency)和可用性(Availability)之间做出权衡选择,形成CP或AP两种架构模式。值得夸大的是,该理论的适用条件是系统确实处于网络分区状态。当系统处于网络正常运行的无分区(Non-Partitioned)状态时,分区容忍性(P)的约束条件将自动排除,此时系统理论上能够兼顾数据一致性(C)和可用性(A)的双重保障。
        这种动态特性要求架构师采取分层设计策略:在分区场景下需根据业务特性决策CP/AP的优先级(如金融交易等强一致性场景应优先保障CP,而在互联网服务等高可用需求场景则更适合选择AP);在无分区常态下则需要通过副本同步、事务协调等机制持续优化CA指标,为系统构建灵活弹性的架构基础。


2 BASE理论

2.1 简介

        BASEBasically Available(基本可用)Soft-state(软状态)Eventually Consistent(最终一致性) 三个短语的缩写。BASE 理论是对 CAP 中一致性 C 和可用性 A 权衡的效果,其来源于对大规模互联网系统分布式实践的总结,是基于 CAP 定理逐步演化而来的,它大大降低了我们对系统的要求。
2.2 BASE理论的焦点思想

纵然无法做到强一致性,但每个应用都可以根据自身业务特点,接纳得当的方式来时系统到达最终一致性。
   也就是捐躯数据的强一致性来满足系统的高可用性,系统中的一部门数据不可用大概不一致时,仍需要保持系统整体“重要可用”。
   BASE理论本质上是对CAP的延伸和补充,更具体的说,是对CAP中AP方案的一个补充。
   假如系统没有发生“分区”的话,节点间的网络连接通讯正常的话,也就不存在P了。这个时间,我们就可以同时保证C和A了。因此,假如系统发生“分区”,我们要考虑选择AP还是CP,假如没有,我们要思考怎样保证CA。
  因此 ,AP方案只是在系统发生分区的时间放弃一致性,而不是永远放弃一致性。在分区故障规复后,系统应该到达最终一致性。这一点就是BASE理论延伸的地方。
2.2 基本可用

基本可用是指分布式系统在出现不可预知故障的时间,答应丧失部门可用性。但是,这绝不等价于系统不可用。
   什么叫答应丧失部门可用性?
  
   2.3 软状态

软状态指答应系统中的数据存在中间状态(CAP理论中的数据不一致),并认为该中间状态的存在不会影响系统的整体可用性,即答应系统在不同节点的数据副本之间进行数据同步的过程中存在延时
2.4 最终一致性

最终一致性夸大的是系统中全部的副本,在颠末一段时间的同步后,最终能够到达一个一致的状态。因此最终一致性的本质是需要系统保证最终数据能够到达一致,而不需要及时保证系统数据的强一致性。
   分布式一致性的 3 种级别:
    业界比力推崇是最终一致性级别,但是某些对数据一致要求非常严格的场景好比银行转账还是要保证强一致性。
  那最终实现一致性具体方案?
    
  
  比力推荐 写时修复,这种方式对性能消耗比力低。


3 总结

ACID 是数据库事务完整性的理论,CAP 是分布式系统设计理论,BASE 是 CAP 理论中 AP 方案的延伸。
 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 IT评测·应用市场-qidao123.com (https://dis.qidao123.com/) Powered by Discuz! X3.4