[发明专利]一种实现分布式事务的方法和装置在审
申请号: | 201310655744.2 | 申请日: | 2013-12-06 |
公开(公告)号: | CN103631647A | 公开(公告)日: | 2014-03-12 |
发明(设计)人: | 郭永强;易旭 | 申请(专利权)人: | 北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司 |
主分类号: | G06F9/46 | 分类号: | G06F9/46 |
代理公司: | 北京德琦知识产权代理有限公司 11018 | 代理人: | 阎敏;宋志强 |
地址: | 100080 北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 实现 分布式 事务 方法 装置 | ||
技术领域
本发明涉及分布式事务技术领域,尤其涉及一种实现分布式事务的方法和装置。
背景技术
当前企业级的应用中,有很多的系统涉及到多个数据源,针对多个数据源的处理就要涉及到分布式事务;分布式事务实现的好与坏,直接影响到该企业级应用的性能以及用户体验。
现有的实现分布式事务的解决方案之一是利用一些商用的应用服务器来实现,比如WebSphere。
另外一种普遍的分布式事务解决方案是将涉及到多个数据源的操作封装为一个大的事务,如图1所示。启动事务后,顺序进行涉及多个数据源的多个操作,如果在这多个操作中出现操作失败或者是出现异常,则回滚该事务。
上述两种分布式事务实现方案的缺点是:
第一种,利用商用的应用服务器实现分布式事务,需要购买商用应用服务器的授权,代价相对昂贵。
第二种,利用将涉及多个数据源的多个操作封装为一个事务的方式虽然能够实现分布式事务,但是针对不同数据源的多个操作必须顺序执行,整个系统的性能会因此受到影响。
发明内容
本发明提供了一种实现分布式事务的方法,能够实现针对多个数据源的事务并发进行,且无需使用专门的商用应用服务器。
本发明提供了一种实现分布式事务的装置,能够实现针对多个数据源的事务并发进行,且无需使用专门的商用应用服务器。
本发明的技术方案是这样实现的:
一种实现分布式事务的方法,包括:
设置N个子线程,每个子线程负责处理分布式事务中的一个事务;其中,各个事务针对不同的数据源,每个事务包括针对该数据源的一个以上操作;
初始化CountDownLatch类,将所述CountDownLatch类计数器的初始值设置为N;
主线程调用CountDownLatch类的await方法;
分别启动所述N个子线程;当一个子线程执行完成时,调用CountDownLatch类的countDown方法,使得所述CountDownLatch类计数器的值减1;
当所述CountDownLatch类计数器的值为0时,继续执行所述主线程。
上述方法可以进一步包括:当一个子线程执行出现异常时,将已经执行完毕的所有子线程回滚,并将所述CountDownLatch类计数器的值设置为0。
当所有子线程执行完成并且CountDownLatch类的计数器减至0时,记录所述分布式事务为成功状态;
当子线程执行出现异常时,记录所述分布式事务为失败状态。
一种实现分布式事务的装置,包括:
初始化模块,用于设置N个子线程,每个子线程负责处理分布式事务中的一个事务;其中,各个事务针对不同的数据源,每个事务包括针对该数据源的一个以上操作;还用于初始化CountDownLatch类,将所述CountDownLatch类计数器的初始值设置为N;
主线程控制模块,用于控制主线程调用CountDownLatch类的await方法,当所述CountDownLatch类计数器的值为0时,继续执行所述主线程;
子线程控制模块,用于分别启动所述N个子线程;当一个子线程执行完成时,调用CountDownLatch类的countDown方法,使得所述CountDownLatch类计数器的值减1。
上述装置中,子线程控制模块还可以用于,当一个子线程执行出现异常时,将已经执行完毕的所有子线程回滚,并将所述CountDownLatch类计数器的值设置为0。
当所有子线程执行完成并且CountDownLatch类的计数器减至0时,记录所述分布式事务为成功状态;当子线程执行出现异常时,记录所述分布式事务为失败状态。
可见,本发明提出的实现分布式事务的方法和装置,设置N个子线程,每个子线程负责处理分布式事务中的一个事务,并且通过CountDownLatch类来实现N个子线程同步执行,从而实现了针对多个数据源的多个分布式事务并发进行。
附图说明
图1为现有技术中分布式事务的实现方式;
图2为本发明提出的实现分布式事务的方法流程图;
图3为本发明实施例一的实现流程图。
具体实施方式
本发明提出一种实现分布式事务的方法,如图2为该方法实现流程图,包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司,未经北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310655744.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:对平坦基板进行单面湿化学处理的装置
- 下一篇:超大玻璃板生产用堆垛升降机