分布式事务
2022-03-06 13:19:20 2 举报
AI智能生成
Java分布式事务解决方案
作者其他创作
大纲/内容
什么是分布式事务?
单体应用场景的事务
微服务应用场景的事务
业界比较常见的分布式事务解决方案
2PC模式
思想
一阶段:准备阶段(Prepare phase)
二阶段:提交阶段(commit phase)
总结
使用分布式事务成本低,适用于数据库层面
性能不理想,XA无法满足高并发场景
在MySQL中不太理想
XA应用场景不理想
同步阻塞,2PC两个阶段中,协调者和参与者的通信都是同步的,导致整个事务的的长时间阻塞
3PC模式
思想
一阶段:准备阶段(CanCommit)
二阶段:预提交阶段(PreCommit)
三阶段:提交阶段(DoCommit)
柔性事务(TCC补偿性方案)
思想
Try:prepare行为,调用自定义的prepare逻辑
Confirm:commit行为
Cancel:rollback行为
总结
优势在于可以自定义数据操作的粒度
不足之处是对于应用的侵入性非常强
业务逻辑分支都需要try、confirm、cancel三步操作
柔性事务(最大努力通知方案)
思想
使用消息中间件
不断发消息通知
例:订单业务
总结
柔性事务(最终一致性方案)
市场上比较成熟的产品
Seata
Seata介绍
优点
附:seata官网:https://seata.io/zh-cn/
Seata提供四种模式
AT
重点介绍Seata的AT模式
TCC
SAGA
XA
分布式事务过程
组件
TC
TM
RM
Seata处理一个全局事务的流程
举例Seata的分布式事务过程
新用户注册送积分
Seata实现2PC与传统2PC的差别
TiDB
原生分布式的数据库
0 条评论
下一页