问题描述
各个子系统数据一致性问题
在过往单机系统的时代,把相关操作放在一个事务里,就能为我们解决数据一致性的问题。但在分布式系统和微服务架构盛行的今天,常常会遇到一个操作需要依赖多个外部服务的场景。要求我们自行解决各个系统数据一致性的问题。
解决方案
补偿事务
互联网场景下,解决分布式系统的一致性问题,基于系统复杂性与吞吐量的考虑,多数团队不会选择类似两阶段提交,甚至三阶段提交的分布式事务。一个简单的补偿事务就足以解决多数问题。当然,如果系统都是自家可控的,第三方中间件也是不错的选择
基本原理
放弃强一致性,实现最终一致性
不要ACID了,