最近项目中使用了分布式事务,本文及接下来两篇文章总结一下在项目中学到的知识。分布式事务对性能有一定的影响,所以不是最佳的解决方案,能通过设计避免最好尽量避免。分布式事务(Distributed transactions),也称作XA事务(XA是一个协议的名字),在spring中被称作global t...
分类:
编程语言 时间:
2015-03-02 20:32:16
阅读次数:
437
系统经sharding改造之后,原来单一的数据库会演变成多个数据库,如何确保多数据源同时操作的原子性和一致性是不得不考虑的一个问题。总体上看,目前对于一个分布式系统的事务处理有三种方式:分布式事务、基于Best Efforts 1PC模式的事务以及事务补偿机制。我们下面对这三种处理方式一一进行分析。...
分类:
数据库 时间:
2015-02-27 13:26:55
阅读次数:
139
如果在C#中使用TransactionScope类(分布式事务),则须注意如下事项:1、在项目中引用using System.Transactions命名空间(先要在添加net组件的引用);2、具体示例如下:/**///////发送消息/////////格式7FFA3AF2-E74B-4174-84...
分类:
编程语言 时间:
2015-02-26 11:11:47
阅读次数:
148
一、在TransactionScope中,如果不是必须要避免它启用DTC分布式事务,因为性能低下;而对于TransactionScope来说它是以连接对象Connection做为识别单位的,也就是说即便是相同连接字符串ConnectionString的两个连接对象Connection在Transac...
分类:
其他好文 时间:
2015-02-26 11:11:47
阅读次数:
147
今后新线的开发和现有系统的注意事项
1:现有已经开发好的线,如果是增删改是调用其他系统的,而现在是在Controller调用的,是不受EJB分布式事务(JTA)控制的,会出现数据的不准确性,所以为了提高数据的正确性,大家需要把此种方法的调用在自己的Bean的实现里面调用
2:系统内部有把其他Core打包到自己的ear里面,不利于后期的维护
3:远程调用的用户名和密码以前咱们都是在xml里面,等项目开发部署后如果改变服务器不利于项目的迁移
4:分布式事务的解决
总结
我们四个小伙伴整...
分类:
其他好文 时间:
2015-02-16 13:07:40
阅读次数:
121
这段时间一直在思考分布式事务的实现,一开始的思路总是停留在应用层面上,后来经过查看相关资料才知道,要支持分布式事务得需要数据库的支持,也就还是回到了数据库层面,另外在Java里面结合javax.sql扩展包,使用两段提交协议能轻松支持分布式事务。后来自己结合之前做过的一..
分类:
其他好文 时间:
2015-02-09 18:43:15
阅读次数:
521
[续上篇] 当基于LTM或者KTM的事务提升到基于DTC的分布式事务后,DTC成为了本机所有事务型资源管理器的管理者;此外,当一个事务型操作超出了本机的范 围,出现了跨机器的调用后,本机的DTC需要于被调用者所在机器的DTC进行协助。上级对下级(包括本机DTC对本机所有资源管理器,以及上下级DTC)...
分类:
其他好文 时间:
2015-02-09 18:14:14
阅读次数:
186
在前面一篇给出的Transaction的定义中,信息的读者应该看到了一个叫做DepedentClone的方法。该方法对用于创建基于现有Transaction对 象的“依赖事务(DependentTransaction)”。不像可提交事务是一个独立的事务对象,依赖事务依附于现有的某个事务(可能是可提交...
分类:
其他好文 时间:
2015-02-09 18:12:53
阅读次数:
253
在.NET 1.x中,我们基本是通过ADO.NET实现对不同数据库访问的事务。.NET 2.0为了带来了全新的事务编程模式,由于所有事务组件或者类型均定义在System.Transactions程序集中的System.Transactions命名空间下,我们直接称基于此的事务为System.Tran...
分类:
其他好文 时间:
2015-02-09 18:12:33
阅读次数:
173
在一个基于SOA架构的分布式系统体系中,服务(Service)成为了基本的功能提供单元,无论与业务流程无关的基础功能,还是具体的业务逻辑, 均实现在相应的服务之中。服务对外提供统一的接口,服务之间采用标准的通信方式进行交互,各个单一的服务精又有效的组合、编排成为一个有机的整体。在这样 一个分布式系统...
分类:
其他好文 时间:
2015-02-09 18:08:48
阅读次数:
189