Lcn分布式事务与Feign的集成实践

本文介绍了如何将Lcn分布式事务框架与Feign结合使用,详细讲解了Tx-manager事务管理器的启动和配置,以及服务调用方的各个组件如拦截器、接口、实体类等的实现细节,特别强调了在服务调用中开启本地和分布式事务的注解使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Lcn分布式事务同时兼容oracle,mysql,sqlserver

说明:

本次集成采用了开源的lcn框架,需要单独启动一个tx-manager的事务管理器,在事务发生的服务当中引入需要的依赖。

一.Tx-manager事务管理器

封装好的jar包,还有配置文件,放到和jar同级目录,修改相应的配置为自己的配置即可。然后启动。Jar会随文档进行打包发送

配置文件如下图示

 

二.服务调用实例包括各个文件的代码和配置

调用方总体目录结构

注:这是实例的目录结构实际开发中按照自己项目进行注释的添加即可。实例会随文档赠送

DemoController

注:此类没有特殊的地方,普通的controller

Dao

注:普通的接口类无特殊

Entity

注:普通实体类,无特殊地方

MyConfiguration

注:这个类要特别注意,他出现在调用方的服务当中,是一个拦截器,利用了aop的方式和resttemplate的方法实现的跨服务的拦截。必须要有的一个。

Txtransactioninterceptor

注:这个类也是必须要有的,下面的拦截地址可以更具自己的项目方法地址进行配置,其他的一样即可

Demo2client

注:要调用的服务的接口,通过feignclient进行调用,value为要调用的服务的名称,configuration为我们上面定义的MyConfiguration

DemoService

注:无特殊之处,普通的接口类

DemoServiceImpl

注:需要在我们的调用不同服务的方法上面增加俩个事务注解@Transaction和@TxTransaction分别代表开启本地事务和分布式事务,因为LCN的原理就是协调服务间的事务进行异常回滚,所以一定要开启本地事务

微服务的启动类

注:增加@EnableAutoConfiguration、@EnableFeignClients、和EnableEurekaClient。并且要在启动类中加入图中的俩个方法,可从随附代码中拷贝

配置文件

注:基本的数据库及注册中心等配置

注:配置tx-manager的地址和数据库的类型

被调用方

如果说这个被调用方还有要调用其他的服务那就和上面的项目一样进行配置,注意点也是一样,如果没有则不需要上面的client配置和MyConfiguration的配置。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值