Seata 多路服务调用时事务不回滚解决办法

2023-11-02

最近使用了Seata作为分布式事务管理工具,在一般情况如: A服务调用B服务且A服务调用C服务,即A-B & A-C这种服务调用链路,当其中任意一个服务报错,事务是可以回滚的。

然而,稍微复杂一点的情况我发现seata事务居然不会回滚了!即A-B  & B-C & B-D,这种调用链路,seata就不会回滚了,我想说框架都快1.0版本了居然连这种情况都不支持吗?于是我查了查官方文档,嗯,除了一些基本的介绍几乎等于什么都没写,最后我找到了关于微服务的文档说明,原来是通过绑定一个ID来绑定各个服务的事务,因此解决方法如下:

RootContext.bind(entity.getXid());

在服务链路的每个服务接口中都加上绑定XID的代码,必须保证这些服务绑定的都是同一个XID,XID在开启全局事务时会自动生成,因此在A服务这样获取:

xid = GlobalTransactionContext.getCurrentOrCreate().getXid();

然后在后面的B、C、D服务都绑上这个XID就可以正常回滚事务了,希望后续更新会修复这个问题,如有不正确之处还请指正。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Seata 多路服务调用时事务不回滚解决办法 的相关文章

  • Vue.js快速入门 (cdn引入)

    文章目录 一 Vue基础 1 1 渐进式框架 1 2 第一个Vue程序 1 3 el 挂载点 1 4 data 数据对象 二 Vue 指令 2 1 v text 文本值 2 2 v html 标签元素 2 3 v on 绑定事件 2 4 v
  • 微服务系列:Spring Cloud Alibaba 之 Sentinel 高级流控规则

    微服务系列 Spring Cloud Alibaba 之 Sentinel 基本流控规则 在上一篇中 我们学习完了 Sentinel 的基本流控规则 这篇我们来研究一下 Sentinel 的高级流控规则 话不多说 开始今天的学习 一 概述
  • 微服务契约测试框架-Pact

    契约测试 契约测试的思想就是将原本的 Consumer 与 Provider 间同步的集成测试 通过契约进行解耦 变成 Consumer 与 Provider 端两个各自独立的 异步的单元测试 契约测试的优点 契约测试与单元测试以及其它测试
  • 以数据为中心的标记语言-->yaml

    目录 一 yaml 介绍 二 yaml 基本语法 三 数据类型 1 字面量 2 对象 3 数组 四 yaml 应用实例 1 需求 2 需求图解 3 代码实现 五 yaml 使用细节 一 yaml 介绍 YAML 是 YAML Ain t a
  • 在前端页面下拉框动态显示数据库查询出来的结果,供客户勾选,限制客户自建字段(java版)

    最终效果 案例 前端代码 首先引入标签库jar和html代码 div class form group div
  • RabbitMQ 登录控制台出现 “你与此网站的连接不是私密连接“

    解决方案 可能是创建容器时 密码没能成功设置进去 重新设置密码 先进入MQ容器中 我这里是用的docker 容器 docker exec it mq容器名 bash 查看用户 rabbitmqctl list users 修改密码 rabb
  • 基于SpringBoot-Dubbo的微服务快速开发框架

    简介 基于Dubbo的分布式 微服务基础框架 为前端提供脚手架开发服务 结合前一篇 Web AP快速开发基础框架 可快速上手基于Dubbo的分布式服务开发 项目代码 https github com backkoms web service
  • 事务,不只ACID

    1 什么是事务 应用在运行时可能会发生数据库 硬件的故障 应用与数据库的网络连接断开或多个客户端端并发修改数据导致预期之外的数据覆盖问题 为了提高应用的可靠性和数据的一致性 事务应运而生 从概念上讲 事务是应用程序将多个读写操作组合成一个逻
  • Spring Boot入门必会(基本介绍+依赖管理+自动装配)

    目录 一 基础入门 1 Spring Boot 是什么 2 SpringBoot 快速入门 2 1完成步骤 2 2快速入门小结 3 Spring SpringMVC SpringBoot 的关系 3 1梳理关系 3 2如何理解 约定优于配置
  • javaweb前后台交互传递数据的几种方法

    前端传后台 form表单传递
  • 浅谈微服务异步解决方案

    导言 异步是一种设计思想 不是设计目的 因此不要为了异步而异步 要有所为 有所不为 异步不是 银弹 避免试图套用一个 异步框架 解决所有问题 需要根据不同的业务特点或要求 选择合适的设计实现方式 同步和异步问题是大型分布式系统中需要慎重等待
  • 【业务功能篇104】 补充【业务功能篇99】微服务-springcloud-springboot-电商订单模块--整合支付

    在前面我们业务功能篇98 99中 我们介绍了电商项目中的订单模块服务 那么最后就是需要进行支付动作 那么我们这里就通过订阅第三方平台支付宝的支付调用接口功能 来进一步完成订单提交后的支付动作 支付宝的接口使用可以登录官网开发指南详情去了解
  • 如果老板要求你的系统接入春晚大流量活动,你会心慌慌吗?

    目录 回头看看 原始系统技术架构 基于CDN的活动静态页面缓存方案 基于Nginx Tomcat Redis的多级缓存方案 超高并发写请求RocketMQ削峰填谷方案 系统限流防雪崩体系架构方案 今天给大家分享一个话题 就是如果要是你老板突
  • MVC三层架构

    1 MVC三层架构 MVC Model View Controller 是一种常见的软件设计模式 用于组织和管理应用程序的代码和逻辑 它将应用程序分为三个主要部分 模型 Model 视图 View 和控制器 Controller 每个部分都
  • 第五章 Gateway--服务网关

    接上一篇文章开始网关之旅 首先告诉大家网关是什么 Gateway简介 怎么配置 怎么入门 执行流程等等相关介绍 第一章 微服务的架构介绍发展第二章 微服务环境搭建第三章 Nacos Discovery 服务治理第四章 Sentinel 服务
  • 若依微服务版本代码生成对sqlserver的支持

    目录 前言 一 后端 1 pom依赖 2 yml配置配置数据源 3 新增service impl 注意 4 新增mapper接口
  • 双非本科进不了大厂?阿里技术四面+交叉面+HR面,成功拿到offer

    前言 前两天 我收到了阿里巴巴的实习offer 从学长内推开始面试到拿到最后offer经历了4面技术 一面交叉面和一面HR面 经过了漫长的等待和几次几乎折磨的面试之后 终于拿到了实习offer 自我介绍 本人来自西南某双非本科学校 该校学的
  • 几个Python小案例,爱上Python编程!

    Python是一种面向对象的解释型编程语言 源代码与解释器CPython遵守GPL协议 Python语法简洁清晰 语法简洁清晰 那么我们用少量的Python代码能做哪些有趣的东西 一 画爱心表白 1 图形都是由一系列的点 X Y 构成的曲线
  • 第六章--- 实现微服务:匹配系统(下)

    0 写在前面 这一章终于完了 但是收尾工作真的好难呀QAQ 可能是我初学的缘故 有些JAVA方面的特性不是很清楚 只能依葫芦画瓢地模仿着用 特别是JAVA的注解 感觉好多但又不是很懂其中的原理 只知道要在某个时候用某个注解 我真是有够菜的
  • Python 微服务架构指南

    概要 微服务架构作为一种设计风格 它将应用程序构建为一套小服务的集合 每个服务实现特定的业务功能 这些服务可以独立部署 扩展并围绕特定业务能力构建 Python 凭借其简洁易读的语法和强大的库生态系统成为实现微服务的受欢迎选择 本文将详细介

随机推荐

  • 级数求和

    include using namespace std int main double k int n 0 double sn 0 使用double精度 cin gt gt k while sn lt k 知道不满足跳出 n sn 1 0
  • 【AutoHotkey】windows和mac统一映射方案

    起因 在公司用Mac 在家用Windows 需要 统一快捷键体验 网上搜索之后 发现了一个开源的软件AutoHotkey 简单使用之后 又发现这个东西可以针对不同软件进行特别的按键映射 真的好厉害 AutoHotkey官网 建议安装1 1
  • 深聊测开领域之:一文搞懂什么是敏捷测试,如何做敏捷测试,建议先收藏再学习。

    敏捷测试 1 引言 2 解析敏捷测试 2 1 含义 2 2 特点 2 3 为什么要进行敏捷测试 2 4 敏捷测试与传统测试对比 2 5 如何迁移敏捷测试 2 6 敏捷测试成功因素 3 总结 1 引言 小屌丝 鱼哥 在忙呢 小鱼 昂 不忙 再
  • python环境配置什么意思_Python 环境配置

    Python 环境配置 在你开始学习 Python 之前最重要的是 对 你要安装 Python 环境 许多初学者会纠结应该选择 2 x 版本还是 3 x 版本的问题 在我看来 世界变化的速度在变得更快 语言的更新速度速度亦然 没有什么理由让
  • RocketMQ系列之入门

    前言 之前我们把RMQ的多Master集群搭建起来了 我们今天就来看看如何向这个集群生产消息以及消费消息 集群搭建回顾 回顾上节的内容 我总结下以下几步 第一 最新版RMQ4 2 0要求最低JDK8版本 第二 修改虚拟机的host 配置na
  • Nginx高可用主备模式

    我这里用的是VMware上的两台虚拟机 那个ip地址 就按照自己的配就行了哈 跟我一样也行的 也可以直接这么设置 我这里有两台机子 ip分别都是设置的静态ip 两台机子上分别都装上nginx和keepalived 这是安装keepalive
  • STM32 CAN通讯实验程序

    目录 STM32 CAN通讯实验 CAN硬件原理图 CAN外设原理图 TJA1050T硬件描述 实验线路图 回环实验 CAN头文件配置 CAN GPIO Config初始化 CAN初始化结构体 CAN筛选器结构体 接收中断优先级配置 接收中
  • [转]:如何让PowerDesigner支持自动生成含SQL Server 2000的表和列注释

    如何让PowerDesigner支持自动生成含SQL Server 2000的表和列注释的角本 PowerDesigner是Sybase公司著名的产品 我从16 bit的windows开始 就接触并使用这个工具 应该说是有很深的感情 Pow
  • 从零开始学习Redis(三)代码使用Redis

    1 安装完了之后就可以使用了 我是用的是SpringBoot整合Redis 咱们整个最简单的 新建一个maven项目 添加依赖
  • Python文本进度条-time库

    TextProBarV3 py import time scale 50 表示整数除法 返回不大于结果的一个最大的整数 print 执行开始 center scale 2 perf counter 返回一个CPU级别的精确时间计数值 单位为
  • Windows10安装VMware Workstation 15 Player遇到问题

    出现的问题 如下图 解决方法 以我电脑为例子 我的是联想的 1 在开机的时候 按F2进入BIOS界面 这个各品牌的电脑不一样 可能操作上有区别 2 选择configuration 再选择intel virtual technology 本来
  • Openssl base64命令

    一 简介 对文件件进行base64的编码与解码 二 语法 openssl base64 in filename out filename 三 实例 1 二进制文件与base64编码互转 openssl base64 in pubkey bi
  • python列表中元素相加_将所有嵌套列表中的元素相加

    首先 为Python程序员展示了一个通用的反模式 不要循环索引 循环对象本身 E g组 for item in b do something item 而不是 pr2 它更清晰 更简单 更快 在 也就是说 你遇到的主要问题是其中一项不是列表
  • 解耦利器:带你快速了解控制反转以及依赖注入

    前言 在我们的后端工程中 面临着一个很严峻的问题 代码的体量太大了 那么我们如果不能很好的处理各个方法之间的关系 就会对后期的代码维护和更新造成很大的问题 例如可能只是一次对方法的简单更改 却要改动一系列调用这个方法的相关代码 而我们今天要
  • c++系列八 —— STL编程之容器类

    往期地址 c 系列一 c 的封装 c 系列二 c 的继承 c 系列三 继承和多态特性 c 系列四 运算符重载 c 系列五 静态成员和静态类 c 系列六 友元函数和友元类 c 系列七 STL编程之模板template 本期主题 STL编程之容
  • web前端网页制作思路(只是思路)

    分享一下web前端网页制作的思路 首先 当你拿到一个项目关于网页设计的 比如类似于写一个类似于百度图片的搜索引擎 类似于这样 你会首先想到的是什么呢 先是这个背景呢 上面的文字呢还是说中间的文字 暂时我们只是讲一讲思路 谈一谈如何去做 好的
  • iOS编程基础-Swift(一)-Swift架构纵览

    Swift入门指南 iOS9 Programming Fundamentals With Swift 语言 第一章 从概念与实践上介绍Swift程序的结构 第二章 介绍Swift 函数 第三章 介绍Swift变量 第四章 介绍Swift对象
  • 计算机 国际顶尖级会议排名,计算机学科国际会议排名

    序号 会议名称 会议介绍 代表领域 1 ACM SIGCOMM ACM Conf on Communication Architectures Protocols Apps ACM的旗舰会议之一 也是网络领域顶级学术会议 内容侧重于有线网络
  • 电脑提示d3dcompiler_47.dll缺失怎么修复?

    我们再打开游戏或者软件的时候 电脑提示d3dcompiler 47 dll缺失无法打开运行需要怎么修复呢 d3dcompiler 47 dll是电脑系统非常重要的文件 是游戏跟软件运行必要的底层程序 小编今天就把修复教程分享给大家 修复教程
  • Seata 多路服务调用时事务不回滚解决办法

    最近使用了Seata作为分布式事务管理工具 在一般情况如 A服务调用B服务且A服务调用C服务 即A B A C这种服务调用链路 当其中任意一个服务报错 事务是可以回滚的 然而 稍微复杂一点的情况我发现seata事务居然不会回滚了 即A B