分布式事务---LCN

分布式事务:

分布式系统中,分布式模块之间的事务是一个难题,比如A订单模块调用库存模块B的 ,在调用支付模块C ,如果C执行失败,B却执行成功了 ,这可能就有问题了, 你库存少了 ,钱却没付。 这不得亏死啊!所以我们必须对这种连续的模块调用用事务进行管理 ,保证他们一起提交,失败就一起回滚。

LCN:

1、 LCN事务控制有2个模块:分别是是TxClient和TxManager。
TxClient是实现了javax.sql.DataSource的代理连接池, TxManager则是是一个事务协调器。
2、 LCN的事务补偿机制:在一个事务因为服务器挂机等原因失败时,TxClient向协调器发送失败消息,协调器会进行事务补偿,通知TxClient再模拟上次错误请求。


分布式事务框架TX-LCN

TX-LCN的使用:

1、 下载TxManager(事务协调器)项目,正确配置部署。
注意:本地需要redis服务支持。在yml配置中加上redis和数据源的配置,启动TM .

2、事务发起端配置TXClient,引入依赖,启动类加上注解@EnableDistributedTransaction ,配置文件中还要配置TM的信息:

tx-lcn:
  client:
    manager-address: 127.0.0.1:8070

3、在需要事务管理的业务方法上加上本地事务注解和LCN事务注解即可。

@LcnTransaction
@Transaction
public void add(){
addC();
updateB();
}

当然TX-LCN也支持TCC两阶段提交事务,这里就不详细介绍使用,TCC因为需要开发者自己去实现try,confirm,cancel的业务实现,开发量大,侵入性大,也不适合维护。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值