首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于多个DB集群的分布式事务管理的Java / EJB与Spring

问用于多个DB集群的分布式事务管理的Java / EJB与Spring
EN

Stack Overflow用户
提问于 2012-01-25 12:02:56
回答 1查看 1.1K关注 0票数 4

我需要生成一个原型(在J2EE兼容的应用程序服务器中运行MySQL),演示如下所示

replication)

  • Demonstrate展示了在全局不同站点的多个数据库上分发事务的能力(Application )能够从多个位于多个位置的数据库集群的选择中将事务写入数据库。根据用户位置选择要写入的数据库。(数据库托管数据复制)

我可以选择Spring堆栈或Java堆栈(EJB等)。了解您对哪个堆栈更好地支持多个数据库集群上的分布式事务的意见将是有用的。

如果可能的话,你也可以向我指出任何你认为有用的资源来学习如何使用这两个堆栈中的任何一个来实现上面的内容。我认为,看到这两者的例子将有助于理解它们是如何工作的,并且可能更好地决定使用哪个堆栈。

我在Google上搜索了很多网站,但大多数似乎都过时了(即前EJB 3和前Spring 3)。

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-01-27 14:00:41

我将以以下方式使用JavaEE堆栈:

server

  • according为每个数据库

  • 配置XA DataSource到用户位置,无状态EJB查找相应的DataSource并从它获得连接

  • 当将事务广播到所有服务器时,Stateless EJB必须在所有已配置的DataSources上迭代以在它们上执行一个或多个查询,但在一个事务

中

如果出现技术故障,事务将在所有相关服务器上回滚。在业务失败的情况下,代码可以通过context.setRollbackOnly()触发回滚。

这样,您首先可以从JavaEE自动分布式事务划分中获益,如果需要手动管理事务,则可以使用更复杂的模式。

但是,在事务中登记的服务器越多,两阶段提交操作的持续时间就越长,而且如果您在系统之间有较高的延迟时间。我怀疑MySQL是处理这样复杂的分布式事务的最好的关系数据库实现。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9002383

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档