一个服务使用了JTA,那么这个服务就永远都是JTA事物了?
来源:6-1 分布式事务介绍

qq_郭靖_03148326
2019-04-24
这里说,对于一些关键业务,可能需要强一致性,那前面介绍JTA的时候,只要配置了事物都会变成jta的方式去处理.那我这个服务就只能实现强一致性了?我这个服务可能只有一个业务是关键的,其他的业务调用可能不需要强一致性,那怎么处理这个问题呢?
写回答
1回答
-
大漠风
2019-06-08
这个问题非常好。
如果我们之间添加了这个starter,就会有一些自动配置,如果我们想在某些情况下使用JTA,而在默认情况下使用别的,那就可以通过配置类,创建一个事务管理器如`JpaTransactionManager`,然后再创建atomikos的`UserTransactionManager`。如果是用JPA,就通过`EntityManager`的配置让他默认使用`JpaTransactionManager`,然后在某些方法里,通过代码的方式使用JTA的事务管理。
这个过程其实跟我们使用两个DB数据源的分布式事务管理的方法是类似的,你可以参考一下`c6-2`实例的代码。
00
相似问题