当前位置:首页 > 开店攻略 > 支付宝经验

支付宝蚂蚁金服-柔性事务的定义与分类

关注人数:27 发布时间:2021-12-24 20:38:12

柔性事务的定义

支付宝蚂蚁金服

刚性事务(如单数据库)完全遵循 acid 规范,即数据库事务正确执行的四个基本要素:

原子性(atomicity)

一致性(consistency)

隔离性(isolation)

持久性(durability)

柔性事务(如分布式事务)为了满足可用性、性能与降级服务的需要,降低一致性(consistency)与隔离性(isolation)的要求,遵循 base 理论:

基本业务可用性(basic availability)

柔性状态(soft state)

比较终一致性(eventual consistency)

同样的,柔性事务也部分遵循 acid 规范:

原子性:严格遵循

一致性:事务完成后的一致性严格遵循;事务中的一致性可适当放宽

隔离性:并行事务间不可影响;事务中间结果可见性允许安全放宽

持久性:严格遵循

柔性事务的分类

柔性事务分为:两阶段型、补偿型、异步确保型、比较大努力通知型。

两阶段型

分布式事务二阶段提交,对应技术上的 xa、jta/jts,这是分布式环境下事务处理的典型模式。

补偿型

tcc 型事务(try-confirm-cancel)可以归为补偿型。在 try 成功的情况下,如果事务要回滚,cancel 将作为一个补偿机制,回滚 try 操作;tcc 各操作事务本地化,且尽早提交(没有两阶段约束);当全局事务要求回滚时,通过另一个本地事务实现“补偿”行为。

tcc 是将资源层的二阶段提交协议转换到业务层,成为业务模型中的一部分。

异步确保型

将一些有同步冲突的事务操作变为异步操作,避免对数据库事务的争用,如消息事务机制。

比较大努力通知型

通过通知服务器(消息通知)进行,允许失败,有补充机制。

支付宝蚂蚁金服

猜你喜欢