两个微服务强关联且含有事务,一个成功,一个失败怎么办,分布式事务解决方案

微服务同时插入数据问题及分布式事务方案
博客探讨了同时调用微服务A和B插入数据,A成功B不成功的问题。从业务角度思考微服务划分粒度是否合理,还介绍了分布式事务方案,如Seata、tx - lcn,以及部分第三方MQ支持的事务消息,像RocketMQ,而RabbitMQ和Kafka不支持。

今天被问到一个问题,就是如果有调用同时插入数据的微服务A和B,如果A成功,B不成功怎么办?
首先从 业务上来分析:
1.我们为什么要同时操作两个微服务来插入呢?
2.是这两个微服务中有强依赖关系吗?是上一个插入成功下一个才能插入吗?那为何不直接在A服务里面写,调用B服务呢?
值得深思,微服务的划分粒度是否有问题?

分布式事务方案:
Seata:https://seata.io/zh-cn/docs/overview/what-is-seata.html
tx-lcn :https://www.codingapi.com/docs/txlcn-preface/

MQ 事务消息
有一些第三方的MQ是支持事务消息的,比如RocketMQ,他们支持事务消息的方式也是类似于采用的二阶段提交,但是市面上一些主流的MQ都是不支持事务消息的,比如 RabbitMQ 和 Kafka 都不支持

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值