版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhangzhaoyuan30/article/details/88714315
1.本地事务(弱事务):
功能
-
完全支持非跨库事务,例如:仅分表,或分库但是路由的结果在单库中。
-
完全支持因逻辑异常导致的跨库事务。例如:同一事务中,跨两个库更新。更新完毕后,抛出空指针,则两个库的内容都能回滚。
-
不支持因网络、硬件异常导致的跨库事务。例如:同一事务中,跨两个库更新,更新完毕后、未提交之前,第一个库宕机,则只有第二个库数据提交。
支持情况
-
Sharding-JDBC可以支持由用户自行配置不使用XA数据源
-
Sharding-Proxy无需支持,使用XA或柔性事务即可
2.两阶段事务(XA事务)
功能
-
完全支持跨库事务。
-
默认使用Atomikos,支持使用SPI的方式加载其他XA事务管理器。
扫描二维码关注公众号,回复: 5715955 查看本文章
支持情况
-
Sharding-JDBC可以支持由用户自行配置XA数据源
-
Sharding-Proxy支持
3.柔性事务
功能
- 完全支持跨库事务。
- 支持失败SQL重试及最大努力送达。
- 支持反向SQL、自动生成更新快照以及自动补偿。
- 默认使用关系型数据库进行快照及事务日志的持久化,支持使用SPI的方式加载其他类型的持久化。
- 暂不支持资源隔离。
支持情况
ShardingSphere的柔性事务已通过第三方SPI实现Saga事务,Saga引擎使用Servicecomb-Saga。