浅谈实际开发中常用的分布式事物处理
浅谈实际开发中常用的分布式事物处理
文章目录
- 前言
- 一、分布式事物
- 二、常用方案
- 1.使用记录表+mq机制
前言
随着微服务的流行,越来越多系统不在是单体结构,根据业务和功能拆分成不同微服务,这就导致了,一个业务涉及多个微服务调用,业务之间的解耦,依靠spring框架提供的事物@Transactional无法处理。因此在多服务分布式场景下,如何保证事物数据的一致性,从而引入了分布式事物概念
一、分布式事物
网上有很多中解决方案,比如
1.两段式提交2pc: 通过引入一个协调节点,由协调节点先访问多个服务是否可用,如果可用,则全部请求提交。2.tcc补偿方案:try-confirm-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根据结果,判断是成功还是回滚。
浅谈实际开发中常用的分布式事物处理相关推荐
- 浅谈Web开发中的6种技术
CSDN博客不再经常更新,更多优质文章请来 粉丝联盟网 FansUnion.cn! (FansUnion) Web开发中的6种技术 1.html 超文本标记语言,即HTML(Hypertext Mar ...
- 浅谈Android开发中的NFC功能
目录 1."NFC"的自我描述 1.1 NFC功能的基本概念 1.2 NFC功能的背景.特性及发展趋势 2.NFC的基础知识.基本原理 2.1 NFC的工作模式 2.2 实现NFC ...
- 浅谈iOS 开发中的界面通信
在任何的软件开发中都离不开界面与界面之间的通信,界面通信的最直接的方法就是界面传值. 在开发过程中我们在页面传值时我们通常使用的方法有:属性传值法,block传值法,代理传值法,以及单例传值法,通知传 ...
- 浅谈游戏开发中逻辑与表现的分离
回顾之前做的几个Demo,做点总结. 一.做法: 为了更清晰,NRatel将 一个游戏对象类 拆分为 两个类,如下: 1.定义"纯粹的逻辑类". 基本职责:对游戏对象的&quo ...
- 浅谈敏捷开发中的设计
敏捷开发在当今业界已经大行其道,想要快速交付,采用敏捷开发方法似乎是最好的方式,是否必须要用这就另当别论了.敏捷开发以用户的需求进化为核心,采用迭代.循序渐进的方法进行软件开发,不过,想要真正做到快速 ...
- 浅谈软件开发中的假设条件
翻开第一篇聊假设条件的博客,发现已经快2年了.那篇主要涉及了点架构方面假设条件的东西,不是很全,今天开一篇聊一下软件开发中的假设条件.如果把假设条件限定在架构方面,稍显冷门.但如果将其扩展到整个软件开 ...
- java怎么设置全局变量_浅谈Java开发中如何定义的全局变量
Static静态变量 在程序中任何变量或者代码都是在编译时,是由系统自动分配内存来存储的,而所谓静态就是指在编译后分配的内存会一直存在,直到程序退出时才会释放内存空间. static是静态修饰符.被s ...
- 浅谈开发中常用的设计模式
设计模式在开发中占很重要的地位.在大型项目中使用好设计模式往往会取得事半功倍的效果.本篇博客就介绍下几种在开发中常用到的设计模式. 设计原则 先看下一些约定俗成的设计原则,其实要遵守以下所有原则很难, ...
- 浅谈软件开发工具CASE在软件项目开发中发挥的作用认识
浅谈软件开发工具CASE在软件项目开发中发挥的作用认识 内容摘要:阐述了CASE工具作为 一种开发环境在软件项目开发中所起到的开发及管理作用.CASE工具实际上是把原先由手工完成的开发过程转变为以自动 ...
最新文章
- 从富文本中截取图片_Excel文本数字拆分,模式化公式详解
- 使用NavigationUI更新UI组件
- (0.2.6)Mysql安装——编译安装
- kubeadm安装kubernetes 1.13.2多master高可用集群
- requests模块相关用法
- SAP 学习笔记 --- 04-26 02.Material Master
- php 抽象类 接口 区别,PHP中抽象类和接口有什么区别
- oracle日期时间
- deepin linux安装微信,Ubuntu20.04安装Deepin-wine,微信,Tim
- ZOC7 for Mac破解版激活方法附注册码
- 极智开发 | UmiJS 快速上手
- OMNeT 例程 Tictoc12 学习笔记
- Cisco交换机IOS升级
- 有个码龄 10 年的程序员跟我说:“他编程从来不用鼠标”,我说:
- 实体消歧 Entity Disambiguiation
- WordPress使用邮箱服务功能
- 麻辣烫有几种类型?不同种麻辣烫怎么做
- grub 加载软盘镜像
- BZOJ2818 Gcd
- 从南沙图书馆到故宫博物院,隐藏着怎样的未来世界?