【问题标题】:spring-boot-starter-jta-atomikos in practisespring-boot-starter-jta-atomikos 在实践中
【发布时间】:2015-08-15 20:29:37
【问题描述】:

我正在尝试在我的 Spring Boot 应用程序中使用 Atomikos 进行分布式事务。它将与两个数据库交互。

我发现了一个example,其中作者使用了Atomicos。从 1.2 版 spring boot supports Atomicos 开始。

我有几个问题:

  1. 如果应用程序具有 spring-boot-starter-jta-atomikos 依赖项,可以删除 example 配置的哪一部分?
  2. 当应用程序仅使用一个数据库执行操作时会发生什么?即我是否需要额外的东西来指定应该分发哪些事务以及哪些事务是本地的,还是会自动检测到?在这种情况下,我想避免开销。

谢谢!

【问题讨论】:

    标签: java spring jakarta-ee spring-boot atomikos


    【解决方案1】:

    Spring Boot 将为您自动配置 JtaTransactionManager 并将其正确绑定到您的实体管理器或 JMS 消息侦听器(如果有)。查看the documentation 了解更多详情。一种安全的开始方式是根本不编写任何配置,通过属性或自定义配置查看您需要自定义的内容。

    话虽如此,Spring Boot 没有对多个数据库的自动配置支持。如果你想用两个数据库配置一个项目,你必须自己做; this sample project 向您展示了如何使用 JPA 和本地事务管理器来做到这一点。根据您引用的示例,您可以使用 Atomikos 轻松地将其移植到 JTA。

    您不能在运行时更改事务管理器(即基于您的 线程 仅使用一个数据库这一事实)。我猜事务管理器本身对这种情况进行了优化,如果不需要,则不运行完整的 2PC。

    【讨论】:

      猜你喜欢
      • 2015-07-07
      • 2014-10-30
      • 1970-01-01
      • 2015-12-21
      • 1970-01-01
      • 2014-04-07
      • 2016-01-29
      • 1970-01-01
      • 2013-06-19
      相关资源
      最近更新 更多