柔性事务

Posted open资料酷

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了柔性事务相关的知识,希望对你有一定的参考价值。

在电商领域等互联网场景下,传统的事务在数据库性能和处理能力上都暴露出了瓶颈。在分布式

领域基于 CAP 理论以及 BASE 理论,有人就提出了 柔性事务 的概念。CAP(一致性、可用性、分

区容忍性)理论大家都理解很多次了,这里不再叙述。说一下 BASE 理论,它是在 CAP 理论的基

础之上的延伸。包括 基本可用(Basically Available)、柔性状态(Soft State)、最终一致性

(Eventual Consistency)。

通常所说的柔性事务分为:两阶段型、补偿型、异步确保型、最大努力通知型几种。

两阶段型

1、就是分布式事务两阶段提交,对应技术上的 XA、JTA/JTS。这是分布式环境下事务处理的典型模式。

补偿型

2、TCC 型事务(Try/Confirm/Cancel)可以归为补偿型。

WS-BusinessActivity 提供了一种基于补偿的 long-running 的事务处理模型。服务器 A 发起事务,

服务器 B 参与事务,服务器 A 的事务如果执行顺利,那么事务 A 就先行提交,如果事务 B 也执行

顺利,则事务 B 也提交,整个事务就算完成。但是如果事务 B 执行失败,事务 B 本身回滚,这时

事务 A 已经被提交,所以需要执行一个补偿操作,将已经提交的事务 A 执行的操作作反操作,恢

复到未执行前事务 A 的状态。这样的 SAGA 事务模型,是牺牲了一定的隔离性和一致性的,但是

提高了 long-running 事务的可用性。

异步确保型

3、通过将一系列同步的事务操作变为基于消息执行的异步操作, 避免了分布式事务中的同步

阻塞操作的影响。

最大努力通知型(多次尝试)

4、这是分布式事务中要求最低的一种, 也可以通过消息中间件实现, 与前面异步确保型操作不

同的一点是, 在消息由 MQ Server 投递到消费者之后, 允许在达到最大重试次数之后正常

结束事务。


以上是关于柔性事务的主要内容,如果未能解决你的问题,请参考以下文章

分布式事务解决方案——柔性事务与服务模式

分布式事务柔性事务之 TCCSaga本地消息表事务消息最大努力通知

支付宝运营架构中柔性事务指的是什么?

柔性事务

DRDS 柔性事务漫谈

数据库——柔性事务