分布式一致性实现之TCC/SAGA

本文介绍了在微服务环境中,2PC/3PC事务不适合的原因,并详细探讨了CAP理论和BASE理论。接着,文章深入解析了TCC(Try-Confirm-Cancel)事务模式,包括Try阶段、Confirm阶段和Cancel阶段的工作原理,以及幂等性的需求。此外,还阐述了SAGA事务模型,其将长事务拆分为多个子事务和对应的补偿操作,分析了执行顺序和恢复策略,指出SAGA模式下无法保证隔离性的问题。
摘要由CSDN通过智能技术生成

一.概述

之前提到了一致性协议中的2PC/3PC,可以在一定程度上解决分布式事务的问题,但是在微服务架构中依然不合适,原因如下:

  • 由于微服务间无法直接进行数据访问,微服务间互相调用通常通过RPC(dubbo)或Http API(SpringCloud)进行,所以已经无法使用TM统一管理微服务的RM。
  • 不同的微服务使用的数据源类型可能完全不同,如果微服务使用了NoSQL之类不支持事务的数据库,则事务根本无从谈起。
  • 即使微服务使用的数据源都支持事务,那么如果使用一个大事务将许多微服务的事务管理起来,这个大事务维持的时间,将比本地事务长几个数量级。如此长时间的事务及跨服务的事务,将为产生很多锁及数据不可用,严重影响系统性能。

二.CAP理论和BASE理论

1.CAP

1998年,加州大学的计算机科学家 Eric Brewer 提出,分布式系统有三个指标。

  • Consistency
  • Availability
  • Partition tolerance

它们的第一个字母分别是 C、A、P。Eric Brewer 说,这三个指标不可能同时做到。这个结论就叫做 CAP 定理。

2.BASE

BASE理论由eBay的架构师Dan Pritchett提出,BASE理论是对CAP理论的延伸,核心思想是即使无法做到强一致性,应用应该可以采用合适的方式达到最终一致性。BASE是指:

  • Basically Availab
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值