• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

litx: litx是一个基于补偿的轻量级分布式事务框架

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称:

litx

开源软件地址:

https://gitee.com/bryan31/litx

开源软件介绍:

litx

litx是一个基于补偿的轻量级分布式事务框架。(目前只支持dubbo,未来计划支持http等其他rpc调用的补偿)

  • 对代码逻辑无侵入
  • 和spring事务无缝结合(内部实现是集成spring的事务管理器,靠@transactional标注开启)
  • 自动回滚补偿接口
  • 如回滚异常提供hook接口可供扩展,当回滚失败时,可以拿到数据自行可作处理。

Quick Start

也可以参考litx-test的测试用例,其工程演示了在dubbo环境下的测试情况。

也可参照以下代码进行快速配置

第一步定义你相关接口的rollback接口。假设你的dubbo方法为submitOrder,回滚接口命名规则为rollbackSubmitOrder,请求参数定义为你submitOrder的返回类型。加上spring的事务标注@Transactional并且再你的接口上加入@Compensable标注

public interface DemoService {		@Compensable    	String test1();	@Compensable	String test2();		void rollbackTest1(String str);		void rollbackTest2(String str);}

第二步spring配置中加入以下定义

<bean id="litxDubboDefinationScanner" class="com.thebeastshop.litx.spring.LitxDubboDefinationScanner"/>

第三步替换默认的spring事务管理器

<bean name="transactionManager" class="com.thebeastshop.litx.transaction.LitTransactionManager">	<property name="dataSource" ref="dataSource"/></bean>

如果你想处理回滚异常的数据请定义自己的类,实现RollbackInvokeHook接口。并把自己的类注册到spring容器内就可以。litx启动的时候会自动扫描到。

测试用例说明

测试工程提供了一个dubbo-provider,首先得启动他,用Runner的main启动(数据源配置请重新配置),然后启动dubbo-consumerconsumer的test用例演示了一个用例:consumer先调用provider的test1,再调用test2。test2代码里主动抛错。test1回滚,test1回滚的时候主动抛错,然后被consumer自定义的hook捕获到。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap