litx 轻量级分布式事务框架开源项目

我要开发同款
匿名用户2018年04月02日
171阅读

技术信息

开源地址
https://gitee.com/bryan31/litx
授权协议
Apache

作品详情

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

对代码逻辑无侵入

和sprig事务无缝结合(内部实现是集成sprig的事务管理器,靠@trasactioal标注开启)

自动回滚补偿接口

如回滚异常提供hook接口可供扩展,当回滚失败时,可以拿到数据自行可作处理。

QuickStart

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

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

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

public iterface DemoService {@Compesable    Strig test1();@CompesableStrig test2();void rollbackTest1(Strig str);void rollbackTest2(Strig str);}

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

<bea id="litxDubboDefiatioScaer" class="com.thebeastshop.litx.sprig.LitxDubboDefiatioScaer"/>

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

<bea ame="trasactioMaager" class="com.thebeastshop.litx.trasactio.LitTrasactioMaager"><property ame="dataSource" ref="dataSource"/></bea>

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

测试用例说明

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

功能介绍

litx 是一个基于补偿的轻量级分布式事务框架。(目前只支持 dubbo,未来计划支持 http 等其他 rpc 调用的补偿) 对代码逻辑无侵入 和 spring 事务无缝结合(内部实现是集成 ...

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论