提起「微服务架构」,有两个永恒话题:
服务治理、分布式事务
。
数据库和业务模块的垂直拆分,为我们带来了系统性能、稳定性和开发效率的提升,但同时也引入了一些更复杂的问题。例如在数据一致性问题上,我们不再能依赖数据库的本地事务。对于一系列的跨库写入操作,如何保证其原子性,是微服务架构设计不得不面对的问题。
绕不开的 CAP 定理
分布式系统的最大难点,是各个节点的状态如何进行同步。
CAP 定理是这方面的基本定理,也是理解分布式系统的起点。
根据 CAP 定理,一个 Web 应用只能同时支持
一致性(Consistency) 、可用性(Availability) 、分区容错性(Partition tolerance)
中的两种特性。对于横向扩展策略而言,数据分区始终不可或缺,这就等于架构师必须在一致性和可用性间做选择。
所以,在分布式系统中,基于不同的一致性需求,产生了许多不同的分布式事务解决方案。有追求强一致的两阶段提交,追求最终一致性的柔性事务、事务消息等等。
常见的分布式事务方案有哪些?
微服务架构中,常见的分布式事务解决方案有以下几种:
一致性保证:XA > TCC = SAGA > 事务消息
业务友好性:XA > 事务消息 > SAGA > TCC
性 能 损 耗:XA > TCC > SAGA = 事务消息
要注意,在柔性事务解决方案中,虽然 SAGA 和 TCC 看上去可以保证数据的最终一致性,但分布式系统的生产环境复杂多变,某些情况是可以导致柔性事务机制失效的。所以无论使用那种方案,都需要最终的兜底策略,人工校验、修复数据。
对于微服务而言,传统分布式事务解决方案存在哪些问题?如何深入理解 CAP 理论 & BASE 思想?分布式事务架构中的 XA、2PC、3PC、TCC、SAGAS、Seata,异步消息、事务消息等,该如何设计与实践?
前58技术委员会主席孙玄打造的《百万年薪架构师必备能力—万亿级企业分布式事务多场景多维度架构设计的全攻略实践》精品录制课。
3 大篇章 12 模块
干货课程,
限时特价 0.99(约等于一次共享单车骑行,相当划算)。
课题
:
万亿级企业分布式事务多场景多维度架构设计的全攻略实践
费用
:
0.99
(原价
499
,
粉丝福利价0.99
)