知识卡片
CAP约束与BASE的最终一致性
内容
微服务受CAP制约:一致性(每次读都获最新数据)、可用性(故障后仍可用)、分区容错性三者最多满足其二(Brewer 2000提出、Lynch等2002证明)。分布式必须保证分区容忍,就只能在可用性与一致性间取舍——追求强一致就牺牲可用性。许多业务对一致性可妥协,此时BASE(基本可用、软状态、最终一致性)体现价值:允许一段时间牺牲一致性换基本可用,只要最终一致。满足强一致ACID的分布式事务称刚性事务,满足最终一致的称柔性事务。发散:CAP说鱼与熊掌不可兼得,BASE说熊掌可晚点端上来。
参考来源
- 位置:《解构领域驱动设计》第18章《领域驱动设计的战略考量》18.4.2(源文件:_epub-src/OEBPS/031.xhtml)
- 结论依据:原文阐述CAP三要素及其不可兼得、分区容忍前提下只能在CA间取舍,并引出BASE理论与刚性/柔性事务的定义。
- 原始内容:一致性、可用性和分区容错性三者无法在分布式系统中被同时满足,并且最多只能满足其中两个……BASE理论……是最终一致性的理论支撑……满足数据强一致性(即ACID)要求的分布式事务称为刚性事务,则满足数据最终一致性的分布式事务称为柔性事务。