5.6 小结

本章,我们首先了解事务的 ACID 特性,然后通过 CAP 定理探讨一致性、可用性和分区容错性之间的权衡关系。接着,介绍了在 CAP 定理约束下寻求平衡的弱一致性事务模型,如 BASE、TCC 和 SAGA。同时,补充了实施这些模型时必须考虑的“幂等性”原则,这是确保分布式事务在失败和重试情况下保持数据一致性的关键。

此刻,你是否体会到“分布式事务的思想”。其实啊,其核心思想就是从悲观锁的强一致性事务,变成分阶段的锁的柔性事务。使用 TCC、SAGA 等机制,把事务控制从数据库资源层挪到业务服务层,弱化资源的锁定从而提升系统可用性。

最终一致性保证不一致是暂时的,最终会达到一致。但这是一个非常脆弱的保证,它无法告诉我们系统何时收敛。而在收敛之前,读请求可能会返回任何值或者失败。对于应用开发人员而言,最终一致性会带来很大的处理挑战。

最强的一种一致性模型,即线性化(Linearizability,也称原子一致性,最强一致性)。线性化确保分布式系统的操作表现得像是单机系统,也就是客户端无论向哪个节点发起读取请求,读到的数据都将反映最新的写操作结果。我们将在下一章展开讨论如何实现线性化。

参考文档:

  • CAP定理的图解证明 https://mwhittaker.github.io/blog/an_illustrated_proof_of_the_cap_theorem/
  • 分布式系统八大缪误 https://nighthacks.com/jag/res/Fallacies.html
  • 《凤凰架构》周志明
总字数:443
Last Updated:
Contributors: isno