java分布式事务处理 http://my.oschina.net/u/1054538/blog/718343

 

在大型系统架构时我们会进行分库设计,比如用户库、订单库。如果采用了dubbo会产生服务,如果目前有两个服务,用户服务和订单服务。

实际业务中,用户下单支付成功后,并改变用户的状态或增加用户的积分。这样过程中就会产生事务问题。这里我们采用最终事务一致性。

大致实现思路,把分布式事务切割成小事务,用消息队列消除分布式事务。实现方式如下:

订单功能的小事务如下:

首先:订单服务。

用户服务监听消息队列

消息队列配置

消息队列重试次数10次,如果一次失败,可以多试几次。

如果消息队列最终失败,则监听失败信息,采用事务补偿机制,删除之前增加的订单或其他处理。