欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

浅谈实际开发中常用的分布式事物处理

时间:2023-07-05
浅谈实际开发中常用的分布式事物处理 文章目录

前言一、分布式事物二、常用方案

1.使用记录表+mq机制


前言

随着微服务的流行,越来越多系统不在是单体结构,根据业务和功能拆分成不同微服务,这就导致了,一个业务涉及多个微服务调用,业务之间的解耦,依靠spring框架提供的事物@Transactional无法处理。因此在多服务分布式场景下,如何保证事物数据的一致性,从而引入了分布式事物概念


一、分布式事物

网上有很多中解决方案,比如

1.两段式提交2pc: 通过引入一个协调节点,由协调节点先访问多个服务是否可用,如果可用,则全部请求提交。2.tcc补偿方案:try-/confirm/i-cancel、 先尝试锁资源,尝试成功提交事物并释放锁资源,提交失败,释放锁资源。3.本地消息表:使用消息记录表+mq消息补偿机制。根据消息记录表配合定时调度任务,保证发送到mq、 mq消费后。在通知修改消息记录表。4.使用RocketMQ,,这个不常用,可自行搜索5.订阅数据库日志 binlog、 通过订阅数据库的日志,通过中间件通知其它业务模块

二、常用方案 1.使用记录表+mq机制

第一步:执行业务A,保存记录表1,然后发送mq通知B第二步:B收到消息,保存记录做幂等,执行业务。第三步:执行成功或者失败后,发送mq,通知A第四步:A收到消息,更新记录表1,确认是成功,还是回滚

A保证发送消息通知到MQ
MQ保证消息交给B
B处理之后,不管成功还是失败。再次发送MQ通知A
A根据结果,判断是成功还是回滚。

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。