使用rocketmq去解决分布式事务

使用rocketmq去解决分布式事务

我们项目中使用的是rocketMQ的[可靠消息一致性]来实现分布式事务的,我们在上游服务中保证mq消息一定发送成功,在下游服务中我们保证mq消息一定被消费,然后对mq消息做幂等处理,我们使用redis去做幂等处理,把消息的id作为key,消息的状态作为value,当上游服务回滚后,重新发送mq消息给下游服务时,我们先在redis中查询是该mq消息是否已经被消费,如果被消费就直接返回成功,没有被消费就消费mq消息向下执行.

业务场景:
比如现在有两个微服务a和b,a服务修改数据库后发送mq消息给b服务,
b服务成功消费后a服务继续向下进行,之后a服务出现错误回滚,此时b服务怎么回滚?
解决方案: 在a服务中把mq消息放在最后一行 这样在a服务没有执行完成之前就不会发送mq消息,也不用考虑b服务的回滚问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值