java-之分布式事物解决方案

本文介绍了Java中处理RPC接口幂等性和分布式事务的解决方案。针对幂等问题,提出了数据库唯一主键和乐观锁策略。在分布式事务中,详细解析了LCN、Seata和RocketMQ的事务管理原理,包括它们的事务协调、回滚机制以及优缺点,如LCN的长连接与事务分组,Seata的undo_log记录和回滚,以及RocketMQ的事物消息回调机制。
摘要由CSDN通过智能技术生成

RPC接口幂等问题

Insert类型
数据库表字段中根据全局id设定唯一主键 防止重复插入
update类型
使用乐观锁+版本号码实现控制

分布式事物解决方案

如何传递xid: 有个feign客户端拦截器
怎么判断发起方和参与方:是否有分组id(XID)

lcn事物原理
1 发起方参与方与我们的LCN管理器全局事务协调者一直保持长连接;
2 发起方在调用接口之前会使用Aop生成一个全局的事务分组id,并且发送给事物协调者
3.当我们发起方调用接口的时候,会再请求头中设置该事务全局分组id;
4 参与方从请求头中获取到该全局分组id,数据源事物就不会提交
5 发起方调用参与方接口完毕之后,如果报错就通知事物协调者在通知参与方回滚,如果没报错就通知事物协调者在通知给参与方提交事物

seata事物原理
发起方参与方都被Seata的数据数据源实现代理,在原生的sql之前和之后保存原来和修改后日志到undo_log中,方便后期实现回滚。
1 发起方参与方</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值