【问题标题】:Wildfly XA-Datasource - galera clusterWildfly XA-Datasource - galera 集群
【发布时间】:2015-10-26 15:56:53
【问题描述】:

我开发了一个使用 jta 事务(JAVA TRANSACTION API)并且使用多个资源(数据库)的应用程序。所以我在 Wildfly 环境中设置了 xa-datasources

问题是我需要一个集群数据库(f.e :Mariadb + galera, mysql+ mysqlcluster)。

你有推荐的数据库集群环境,并且可以与 xa-transaction 一起使用吗?

【问题讨论】:

  • 能否请您从重写问题开始,以便更易于理解。 mysql xa 支持有什么问题?
  • 因为 xa-transactions 只适用于 INNODB 存储引擎,而 mysqlcluster 使用 NDBCluster 引擎。
  • 似乎没有针对这种环境的现有解决方案。我将数据源合并到一个数据源中。所以不再有 xa 事务了。
  • 您的意思是说没有支持 XA 事务的数据库集群?
  • 谷歌搜索后,不,我没有找到任何支持 xa 事务并使用免费/社区数据库(mysql 或 mariadb)的数据库集群解决方案。

标签: java mysql mariadb mysql-cluster galera


【解决方案1】:

(在我看来...)集群(Galera 或 NDB)和 XA 互相踩踏,因为...

集群本身就是 XA 的一种形式——它必须在多台机器之间协调一个动作,它使用一些 mini-XA 代码来做到这一点。这让您的 XA 没有空间在更高级别上做类似的事情。

为什么要在集群之上使用 XA?

【讨论】:

  • 在某些情况下,除了集群之外还需要 XA。当我们决定使用 Galera 集群时,这里有一个我们在项目中遇到的例子。我们使用Apache Lucene 进行一些文档索引。这需要 XA 以使 Lucene 和数据库保持同步。 Lucene 索引存储在磁盘上的一些文件中。对此类文档的任何更改都应在数据库和 Lucene 文件上提交或在两者上回滚。这需要 XA。
  • @CiprianStoica - 如果这种回滚很少见,我会考虑进行回滚,而是将文档标记为“已删除”。然后,您可能可以按照不需要 XA 的顺序编排索引等。
猜你喜欢
  • 2018-08-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-22
  • 2014-08-08
  • 1970-01-01
相关资源
最近更新 更多