seata 1.4.2 踩坑吐血记录

Seata分布式事务失效,不生效(事务不回滚)的常见场景 检查方法:在每个微服务中调用方法 RootContext.getXID() 检查XID例如,服务A调用了服务B和服务C那么可以分别在服务A、服务B、服务C的事务方法中添加 (1)查看XID是否为null(2)每个服务中的XID不一致如果出现以上两种其中一种,基本可以确定是因为XID导致事务失效解决办法:(1)XID正常情况下是通过请求头上的参数传递给下游服务的,可以通过seta包的getModifyRequest方法下的headers.put打断点进行分析(2)在调用方法中直接传参给下游服务 二、undo_ 阅读详情

1.现象描述

从 git 上下载 seata 1.4.2 版本,集成到 demo 后测试发现,seata 服务端日志显示回滚成功,客户端日志无报错,但是实际上数据并没有回滚,undo_log表没有数据记录。

 

2.解决方法

这个问题困扰了我三天,靠!把配置看了一遍又一遍,做了一次次尝试,均以失败告终,最后一个seata交流群的老哥告诉我可能是数据库主键自增的锅。

然后我一看我的数据表果然是自增的,遂吧业务表的主键自增去除,再次测试,成功回滚数据,T_T。

接下来再次把数据库自增加上,然后在代码侧,数据入库时候加上id而不依赖于数据库生成,再次测试,也能成功回滚数据。

由此,原来是没有设置主键的原因!

分布式事务Seata源码解析十:AT模式回滚日志undo log详细构建过程 AT模式下undo log的构建 和 持久化是分两阶段进行的: * **一阶段:** * 在执行业务SQL的同时,会根据业务SQL构建出before image 和 after image镜像数据的查询SQL; * 基于查询SQL的结果,每一列的数据采用`Field`对象存储、每一行数据采用`Row`对象存储,Row和Field对象的关系为一对多; * 由于业务SQL可能设计到多行,所以最终数据镜像采用`TableRecords`对象存储,TableRecords和Row也是一对多 阅读详情

相关推荐

【Java生成凭证抛账系统设计与实现:从业务数据到财务凭证的技术实践】

本文介绍了Java生成凭证抛账系统的设计与实现,从业务数据到财务凭证的技术实践。作者王文峰是优快云 2020年度博客之星,专注Java开发与国学传统文化。文章阐述了凭证抛账的核心流程,包括业务数据抽取、规则引擎匹配、凭证生成、存储和财务过账五大步骤,并详细讲解了数据校验、规则引擎配置和凭证生成等关键技术点的实现方案。通过Drools规则引擎和借贷平衡校验,系统实现了业务数据向财务凭证的高效转换,为企业财务自动化提供了实用解决方案。

王大师企业官方博客 1352

seata AT模式中,seata失效,RM(事务参与者) 没有访问undo_log 表,也没有生成undo_log日志记录 ,可是global_table区有日志 ,解决BUG!

seata AT模式中 , seata失效 , RM(事务参与者) 没有访问 undo_log 表, 也没有undo_log日志记录 ,可是global_table区有日志 ,解决BUG!

weixin_43786801的博客 7596

undo_log.sql

seata分布式一致性使用的数据表

盘点Seata : undo-log 处理

一 .前言 前面说了 Seata Client 的请求流程 , 这一篇来看一下 Client 端对 undo-log 的操作. undo-log 是 AT 模式中的核心部分 , 他是在 RM 部分完成的 , 在每一个数据库单元处理时均会生成一条 undoLog 数据. 二 . undo-log 表 先来看一下 undo-log 的表结构 CREATE TABLE `undo_log` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `branch_id` big

weixin_57907028的博客 9601

永磁同步电机矢量控制——电流内环前馈解耦策略

在采用永磁同步电机矢量控制时,ud和uq的指令值存在耦合项。需要对其进行解耦,目前,常用的解耦设计方法有前馈解耦、偏差解耦以及内模控制,本文主要分享电流内环前馈解耦控制策略。

a12312341ll的博客 8699

Mac上VMware Fusion手动安装VMware Tools实现跨系统复制粘贴

本文详细指导了在Mac的VMware Fusion中手动安装VMware Tools的完整流程,以解决虚拟机与宿主机之间无法复制粘贴的常见问题。通过定位安装镜像、挂载、解压并运行安装脚本,最终实现跨系统无缝数据交换,提升工作效率。

orange的博客 701

seata 如何开启tcc事物_如何能在实战中完成分布式事务?知道这些点很重要

在这篇文章中我详细介绍了分布式事务是什么,实现分布式事务有哪些常用的方案,但是其中的东西很多是偏于理论,很多读者对其真正在实战上的使用可能还是有点差距。所以在前几次文章的更新中,我介绍了很多关于Seata(一款由阿里开源的分布式事务框架)的内容,如果大家对Seata不是很熟悉的可以阅读下面的内容:解密分布式事务框架-Seata深度剖析一站式分布式事务方案Seata-Server深度剖析一站式分布式...

weixin_30131185的博客 142

BIDS数据存储格式介绍与dcm2bids安装与使用

BIDS格式&dcm2bids安装与使用

machinelearning_er的博客 7319

seata 如何开启tcc事物_如何能在实战中完成分布式事务

背景在一年前我写过一篇关于分布式事务的文章:再有人问你分布式事务,把这篇扔给他,在这篇文章中我详细介绍了分布式事务是什么,实现分布式事务有哪些常用的方案,但是其中的东西很多是偏于理论,很多读者对其真正在实战上的使用可能还是有点差距。所以在前几次文章的更新中,我介绍了很多关于Seata(一款由阿里开源的分布式事务框架)的内容,如果大家对Seata不是很熟悉的可以阅读下面的内容:解密分布式事...

weixin_39524439的博客 109

win11怎么安装dosbox和masm来运行汇编程序(小白,萌新篇)

一文教会你如何部署dosbox和masm环境

m0_73279193的博客 4705

交换机基本介绍(分类、性能指标、硬件构成及工作方式)

一、交换机的分类与性能指标 1.1交换机的分类 按照网络构成方式来分的话,交换机分为三类:接入层交换机、汇聚层交换机和核心层交换机。 按照OSI模型来划分的话,分为:二层交换机、三层交换机和四层交换机 还有一种按照硬件形态来划分,可以分成两类:盒式交换机和机框式交换机。 盒式交换机是一种有固定端口数,有时也会带有少量扩展槽的交换机。机架式交换机是一种插槽式的交换机,这种交换机扩展性较好,可支持不同的网络类型,可支持更大端口密度的网络。一般在数据中心的接入层都会采用盒式交换机,盒式...

monologuezjp的博客 4万+

如何能在实战中完成分布式事务

背景 在一年前我写过一篇关于分布式事务的文章: 再有人问你分布式事务,把这篇扔给他,在这篇文章中我详细介绍了分布式事务是什么,实现分布式事务有哪些常用的方案,但是其中的东西很多是偏于理论,很多读者对其真正在实战上的使用可能还是有点差距。所以在前几次文章的更新中,我介绍了很多关于Seata(一款由阿里开源的分布式事务框架)的内容,如果大家对Seata不是很熟悉的可以阅读下面的内容: 解密分布式事务...

weixin_33881753的博客 206

R语言基于机器学习三分类结果、计算三分类混淆矩阵、计算每一个类别对应的特异度(specificity)、灵敏度(sensitivity)、PPV、NPV

R语言基于机器学习三分类结果、计算三分类混淆矩阵、计算每一个类别对应的特异度(specificity)、灵敏度(sensitivity)、PPV、NPV

data+scenario+science+insight 656

seat TCC 实战(图解_秒懂_史上最全)

文章很长,而且持续更新,建议收藏起来,慢慢读! Java 高并发 发烧友社群:疯狂创客圈(总入口) 奉上以下珍贵的学习资源: 免费赠送 经典图书 : 极致经典 + 社群大片好评 《 Java 高并发 三部曲 》 面试必备 + 大厂必备 + 涨薪必备 免费赠送 经典图书 : 《Netty Zookeeper Redis 高并发实战》 面试必备 + 大厂必备 +涨薪必备 (加尼恩领取) 免费赠送 经典图书 : 《SpringCloud、Nginx高并发核心编程》 面试必备 + 大

架构师尼恩 1275

ESP32-CAM 赋能 AI 视觉巡检小车:自主避障与目标追踪实现全解析

本文基于 ESP32-CAM 实现了低成本 AI 视觉巡检小车的核心功能,硬件成本<100 元,兼顾自主避障与目标追踪。算法升级:移植 YOLOv5nano 量化模型(INT8),提升目标检测精度(如识别巡检场景中的 “异常物体”“人员”);无线拓展:通过 MQTT 协议将巡检图像、距离数据上传到阿里云 / 腾讯云,实现远程监控;多传感器融合:增加温湿度(DHT11)、红外测温(MLX90614)模块,扩展巡检维度;路径规划:结合 SLAM 算法,实现自主建图与路径巡检。

weixin_42300449的博客 368

C# MES通信从入门到精通(1)——串口传输文件

本文详细介绍了在Mes通信领域如何使用串口发送文件,由实战经验总结,堪称MES通信领域的葵花宝典!

qq_34059233的博客 3753

上海Java开发面试高频出现的业务场景(实时日志分析系统、实现订单服务的弹性扩缩容与流量治理)与底层原理(JVM垃圾回收器)及解析

• 用户请求 -> 接口限流(Sentinel/Apollo)-> 查询缓存(Redis)库存 -> 若有库存,执行扣减(CAS原子操作或Redis Lua脚本)-> 下单记录异步写入MySQL -> 发送短信/邮件通知。上海Java开发面试高频出现的业务场景实时日志分析系统、实现订单服务的弹性扩缩容与流量治理、与底层原理JVM垃圾回收器及解析。:Kafka适合日志采集(高吞吐、允许乱序),RocketMQ适合金融/电商(强顺序、事务消息)。中国国学、传统文化和代码爱好者的程序人生,期待你的关注和支持!

王大师企业官方博客 1978

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Spring Boot 集成 Seata 解决分布式事务问题

seata 简介 Seata 是 阿里巴巴2019年开源的分布式事务解决方案,致力于在微服务架构下提供高性能和简单易用的分布式事务服务。在 Seata 开源之前,Seata 对应的内部版本在阿里内部一直扮演着分布式一致性中间件的角色,帮助阿里度过历年的双11,对各业务进行了有力的支撑。经过多年沉淀与积累,2019.1 Seata 正式宣布对外开源 。目前 Seata 1.0 已经 GA。 微服务中...

程序员果果的博客 1694

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

SpringCloudAlibaba 微服务整合分布式事务Seata

微服务整合Seata分布式事务

Yweir的博客 897

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

java 微服务 seata 没有回滚的问题

记录一下今天踩了一天的坑吧,首先确保你的seata正常运行,这里你所用到的微服务都需要添加seata你的启动类需要添加 @EnableAutoDataSourceProxy 然后我们在代码里面两个微服务都打印一下事务id,看看事务id是否一样如果不一样需要配置一个拦截器 这个其他博主有介绍并且我今天主要讲的不是这个问题,这个问题也很少出现,有需要可以搜一下其他博主的解答,这里只提供检验方法-----------------------------------------------------分割线---

qq_34675046的博客 1894

微服务: Seata AT 分布式事务配置出现异常解决(相当全面)(下篇)

异常分类如下所示: 1. no available service 'null' found, please make sure registry *** 2.Could not create connection to database 3.no available service 'default' found 4.Buffer pool was not set on *, the default pool will be... 5. seata at undo_log数据不删除解决方案

pingzhuyan的博客 2418

记一次排查 Seata 分布式事务无法回滚的完整过程

在分布式系统中,我们使用 Seata 管理跨服务的事务。某次业务操作中,调用方和被调用方均报告成功,但在异常回滚时,全局事务标记为回滚成功(Rollback global transaction successfully),但未发现分支事务的回滚记录。数据源未代理:未通过 DataSourceProxy 包装数据源,导致 Seata 无法拦截 SQL 并生成 undo_log。resourceIds 未配置:RM 注册时 resourceIds 为 null,Seata 无法关联资源与事务。

weixin_42132678的博客 959

seata报错之process connectionProxy commit error: Table ‘order.undo_log‘ doesn‘t exist

本文来记录下在使用的过程中遇到的一个报错问题。

weixin_45131680的博客 1058

seata1.4.2版本配置总结

文章目录环境准备:seata-server配置registry.conf创建数据库表nacos配置client配置seata_orderseata_storageseata_account注意点创建项目seata-order-service2001pom.xml文件application.yml实体类CommonResultOrderDaoOrderDaoOrderMapper.xmlconfig配置类MyBatisConfigDataSourceProxyConfigservice业务类OrderServ

Aasee的博客 1357
上一篇: java线程池:线程池怎么开启的、线程池怎么工作的、线程池是怎么关闭的
下一篇: elasticsearch 简介、安装与使用
Yuwen_forJava
博客等级 码龄9年 28粉丝 90原创
评论 17
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值