RT,分支事务调用超时异常导致的错误应该会被try-catch,分支事务本身执行过程中产生的异常也可以被上下游及时感知,这种还会有分布式事务问题吗
yaml核心配置如下(参考mp的dynamic的官方文档) seata: enable-auto-data-source-proxy: false spring: datasource: dynamic: primary: master strict: true #开启seata代理,开启后默认每个数据源都代理,如果某个不需要代理可单独关闭 seata: true #支持XA及AT模式,默认AT seata-mode: AT 实现层代码如下(执行mp的批量) @Log4j2 @Service public class TestInfoCustom3541ServiceImpl extends ServiceImpl implements TestInfoService { @Override @GlobalTransactional(rollbackFor = Exception.class) public void doBatch() { List addList = new ArrayList(); for (int i = 0; i union.system.test.service.impl.TestInfoCustom3541ServiceImpl.executeBatch[189]-> SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@749ad02c] Transaction not enabled 如果是单条单条的save,则不会有任何问题。基于seata,官方也说和ORM层框架是不会影响的。dynamic-datasource官方文档也没有更多的说明,搜索目前也更多是说多数据源问题,参考调整了下,有些直接没法起,有些结果还是一样,不是很懂这方面,有没有大佬能解答一下
最近在学微服务的分布式事务,不太明白为什么在微服务这种分布式系统中,原有的单体acid会出现问题 希望大佬们可以讲一下原理和思想
最近在学分布式事务,了解到分布式事务最大的问题是各个子事务的一致性问题,因此可以借鉴CAP和BASE两大理论,实现AP模式或者CP模式。 对于CP模式的使用场景,我可以理解成将多个事务合成为一个大的事务去提交、回滚。 但是我对于AP的最终一致性思想仅仅停留在概念上,对于具体业务场景以及在出现不一致情况下如何进行弥补依然比较模糊,望大佬们可以解答一下,此外,如果可以,希望大佬可以分享一下,实践中这两个模式如何选择。