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 多路服务调用时事务不回滚解决办法 的相关文章

  • 微服务网关 —— SpringCloud Gateway

    Gateway 简介 Spring Cloud Gateway 基于 Spring 5 Spring Boot 2 和 Project Reactor 等技术 是在 Spring 生态系统之上构建的 API 网关服务 Gateway 旨在提
  • 【微服务】一张图搞懂微服务架构设计

    一张图搞懂微服务架构设计 1 前言 2 流量入口 Nginx 3 网关 4 业务组件 5 服务注册中心 6 缓存和分布式锁 7 数据持久层 8 结构型数据存储 9 消息中间件 10 日志收集 11 任务调度中心 12 分布式对象存储 1 前
  • 程序员整体架构之开发架构

    开发架构 文章目录 开发架构 概述 前言 互联网发展特点 单体架构 面向服务架构 SOA 水平分层架构 微服务架构 水平拆分 垂直拆分 服务网格架构 中台架构 云原生架构 Serverless 架构 小结 公众号 概述 简述了互联网业务发展
  • RabbitMQ 登录控制台出现 “你与此网站的连接不是私密连接“

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

    简介 基于Dubbo的分布式 微服务基础框架 为前端提供脚手架开发服务 结合前一篇 Web AP快速开发基础框架 可快速上手基于Dubbo的分布式服务开发 项目代码 https github com backkoms web service
  • 如何在spring框架中解决多数据源的问题

    在我们的项目中遇到这样一个问题 我们的项目需要连接多个数据库 而且不同的客户在每次访问中根据需要会去访问不同的数据库 我们以往在 spring 和 hibernate 框架中总是配置一个数据源 因而 sessionFactory 的 dat
  • Springboot项目在Jenkins+Docker中实现自动化部署

    Springboot项目在Jenkins Docker中实现自动化部署 一 环境准备 1 项目开发环境 2 Jenkins docker运行环境 二 Docker安装 三 Jenkins安装 四 创建一个Springboot项目 1 使用I
  • 领域驱动设计:DDD分层架构

    文章目录 DDD 分层架构 DDD 分层架构最重要的原则 DDD 分层架构推动架构演进 三层架构如何演进到 DDD 分层架构 微服务架构模型有好多种 例如整洁架构 CQRS 和六边形架构等等 每种架构模式虽然提出的时代和背景不同 但其核心理
  • ElementUI的自定义模板

    ElementUI自定义模板的使用 前言 一 ElementUI的Input重要属性 二 使用步骤 1 上实例 转自Element官网 2 介绍几个重要参数方法 3 基于以上的介绍 做一个带提示的搜索输入框 总结 前言 ElementUI对
  • 浅谈微服务异步解决方案

    导言 异步是一种设计思想 不是设计目的 因此不要为了异步而异步 要有所为 有所不为 异步不是 银弹 避免试图套用一个 异步框架 解决所有问题 需要根据不同的业务特点或要求 选择合适的设计实现方式 同步和异步问题是大型分布式系统中需要慎重等待
  • 2021前端开发面试题:面试中该如何与HR谈薪资?

    问题 面试中该如何与HR谈薪资 解析 HR与你谈论薪资经常有如下套路 HR 您期望的薪资是多少 你 25K OK 你已经被HR成功套路 这个时候你的最高价就是25K了 然后HR会顺着这个价往下砍 所以你最终的薪资 般都会低于25K 等你接到
  • 【业务功能篇104】 补充【业务功能篇99】微服务-springcloud-springboot-电商订单模块--整合支付

    在前面我们业务功能篇98 99中 我们介绍了电商项目中的订单模块服务 那么最后就是需要进行支付动作 那么我们这里就通过订阅第三方平台支付宝的支付调用接口功能 来进一步完成订单提交后的支付动作 支付宝的接口使用可以登录官网开发指南详情去了解
  • 微服务项目之项目简介

    目录 项目模式 技术栈 项目架构图 模块 主模块 项目模式 电商模式 市面上有5种常见的电商模式 B2B B2C C2B C2C O2O 1 B2B模式 B2B Business to Business 是指 商家与商家建立的商业关系 如
  • 客户机操作系统已禁用 CPU。请关闭或重置虚拟机。解决方法

    今天在用VMware安装CentOS7报了这个错误 在网上找半天都没解决 最后换一个地址下的镜像就能正常安装了 Index of centos 7 9 2009 isos x86 64
  • CSS 资源大全中文版

    预处理器 更快地编译 CSS GCSS 一个用GO语言编写的CSS预处理器 官网 LESS 向下兼容CSS并为当前的CSS增加额外的功能 官网 Myth 只用写纯CSS而不用担心浏览器加载缓慢 官网 PCSS 一个用Python语言编写的C
  • 一文打通Sleuth+Zipkin 服务链路追踪

    1 为什么用 微服务架构是一个分布式架构 它按业务划分服务单元 一个分布式系统往往有很多个服务单元 由于服务单元数量众多 业务的复杂性 如果出现了错误和异常 很难去定位 主要体现在 一个请求可能需要调用很多个服务 而内部服务的调用复杂性 决
  • SpringBoot启动微服务报错Consider defining a bean of type ‘org.springframework.data.redis.core.RedisTemplate

    最近遇到一个问题 项目之前使用了Redis 可正常启动 然后最近对Redis部分进行了一些微调 再启动服务提示如下错误 Consider defining a bean of type org springframework data re
  • spring security oauth2 动态切换角色或者岗位,更新redis缓存

    1 切换角色或者岗位后更新缓存token 获取token 并更新token 特别要注意token中的内容 accessToken getAdditionalInformation put SecurityConstants DETAILS
  • 什么是微服务

    微服务是一种架构风格 它把一个大型的复杂软件应用划分为一系列小的服务 每个服务都具有单一的功能 运行在其自己的进程中 并通常基于不同的编程语言和框架 这些服务之间通过轻量级通信机制相互通信 这种通信机制基于HTTP协议 微服务架构风格使得系
  • 微服务常见的配置中心简介

    微服务架构中 常见的配置中心包括以下几种 Spring Cloud Config Spring Cloud Config是官方推荐的配置中心解决方案 它支持将配置文件存储在Git SVN等版本控制系统中 通过提供RESTful API 各个

随机推荐

  • 级数求和

    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