java 跨库事务解决方案

吴睿 发布于 2015/03/17 09:07
阅读 3K+
收藏 2
求助各位大神,我现在遇到java中的跨库事务问题,请问有没有什么好的解决方案?
加载中
0
jobell
jobell
对并发量不大的系统jta就可以了,但是分布式事务对性能的消耗太大了。
如果想并发量很大的系统,就要考虑事务补偿了。
1
胡桃夹子
胡桃夹子
这个一般事务控制在service 接口类当中吧,然后配一个spring aop 切面事务,事务颗粒配备成方法级的。
吴睿
吴睿
谢谢你的提议 我试一试!开始我配置多数据源的时候只有一个数据源的事务生效。单独使用的时候可以正常使用,但是如果两个事物混用就只有一个生效了。
1
jobell
jobell

两种方案:

1、分布式事务 jta

2、事务补偿 

1
小心有诈
小心有诈

引用来自“Brin想写程序”的评论

应用层面解决吧。。

保持多个数据库 链接,用一个连接的列表,不commit,要commit同时commit,否则一起rollback.

就是2阶段提交了, 之前用 zookeeper 解决过这个问题, 可以参考文档http://zookeeper.apache.org/doc/r3.3.5/recipes.htm中得Two-phased Commit
0
兮风古道
兮风古道

难道你不知道有XA/JTA这东西吗?  再说了数据库设计到跨库了,也真够失败的

金贞花
金贞花
夸库 和 设计失败 有什么关系。。。好扯蛋的说法
吴睿
吴睿
我现在就是用的jta 是通过spring jpa hibernate Atomikos 和tomcat 配合使用的。 我看了有博文说:这种全局事务会影响 性能和程序扩展性。还有就是如果节点多了,其中一个节点不正常就会全面崩溃。请教各位还有什么好的处理方式 ​
0
GKTest
GKTest
分布式事务方案,1、如果是JBoss、Weblogic、Websphere,可以通过配置就可以实现;2、如果是在系统上集成的话,使用Atomikos框架,支持Spring
吴睿
吴睿
请问在jboss中有什么具体配置方案吗?
0
魔力猫
魔力猫
我的建议是绕开这个问题,与其考虑跨库事务,不如想办法让跨库的事务变成不跨库的。
金贞花
金贞花
其实,2个系统,
0
l
loverCWS
跨库  事务好回滚吗?
0
南湖船老大
南湖船老大

引用来自“jobet”的评论

两种方案:

1、分布式事务 jta

2、事务补偿 

说的完全正确,只是这两个实现起来都不容易。如果没有足够的技术积累和精力,还是建议楼主修改设计。分布式事务这块,我所知道的也就是阿里做的还行,其它公司都不尽如人意
0
Brin想写程序
Brin想写程序

应用层面解决吧。。

保持多个数据库 链接,用一个连接的列表,不commit,要commit同时commit,否则一起rollback.

返回顶部
顶部