基于springboot的ShardingSphere5.X的分库分表的解决方案之基于seata的分布式事务的解决方案(十五)

基于springboot的ShardingSphere5.X的分库分表的解决方案之基于seata的分布式事务的解决方案(十五)

在前面的章节我们已经对ShardingSphere5.X的核心功能进行了讲解了,那么作为扩展,我们在本章将为大家讲解ShardingSphere5.X的基于seata的分布式事务的实现。

我们首先需要将seata于以下的几个事务进行比对。

1、ShardingSphere分布式事务概览

1.1、本地事务

1.1.1、支持项

  • 完全支持非跨库事务,例如:仅分表,或分库但是路由的结果在单库中;
  • 完全支持因逻辑异常导致的跨库事务。例如:同一事务中,跨两个库更新。更新完毕后,抛出空指针,则两个库的内容都能回滚。

1.1.2、不支持项

  • 不支持因网络、硬件异常导致的跨库事务。例如:同一事务中,跨两个库更新,更新完毕后、未提交之前,第一个库宕机,则只有第二个库数据提交。

1.2、XA两阶段事务

1.2.1、支持项

  • 支持数据分片后的跨库事务;
  • 两阶段提交保证操作的原子性和数据的强一致性;
  • 服务宕机重启后,提交/回滚中的事务可自动恢复;
  • 支持同时使用 XA 和非 XA 的连接池。
上一篇:分布式事务Seata(二) Seata介绍


下一篇:Seata1.4.0分布式事务解决方案研究分享