一个服务使用了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`实例的代码。

0
0

分布式事务实践,从原理到实例,解决数据一致性

掌握分布式事务实现技术,是架构师必备技能。

1149 学习 · 153 问题

查看课程