Seata调用问题之全局异常捕获没法回滚如何解决

本文涉及的产品
Serverless 应用引擎 SAE,800核*时 1600GiB*时
性能测试 PTS,5000VUM额度
注册配置 MSE Nacos/ZooKeeper,118元/月
简介: Seata是一款开源的分布式事务解决方案,旨在提供高效且无缝的分布式事务服务;在集成和使用Seata过程中,开发者可能会遇到不同的异常问题,本合集针对Seata常见异常进行系统整理,为开发者提供详细的问题分析和解决方案,助力高效解决分布式事务中的难题。

问题一:Seata中fegin调用,项目中有全局异常捕获没法回滚。有什么好的解决方案吗?


Seata中fegin调用,项目中有全局异常捕获没法回滚。有什么好的解决方案吗?


关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/439476?spm=5176.21213303.J_qCOwPWspKEuWcmp8qiZNQ.436.6bb82f3dSLrB4q&scm=20140722.S_community@@%E9%97%AE%E7%AD%94@@439476._.ID_439476-RL_seata%E5%BC%82%E5%B8%B8-LOC_search~UND~community~UND~item-OR_ser-V_3-P0_36

问题二:Seata中插入后在模拟异常打了断点,update这条插入的数据事务就无法正确回滚,这是什么原因呀?


Seata中seata版本:v1.4.0,插入后在模拟异常打了断点(还未执行异常),但是在数据库能看到这条记录,然后通过另一个接口update这条插入的数据,事务就无法正确回滚,这是什么原因呀?


参考回答:

检查事务xid传递,和你自己本地事务是否生效。


关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/469487?spm=5176.21213303.J_qCOwPWspKEuWcmp8qiZNQ.441.6bb82f3dSLrB4q&scm=20140722.S_community@@%E9%97%AE%E7%AD%94@@469487._.ID_469487-RL_seata%E5%BC%82%E5%B8%B8-LOC_search~UND~community~UND~item-OR_ser-V_3-P0_37


问题三:Seata中通过feign去扣减商品库存,回到订单服务后抛出异常。是还有哪些东西需要注意的吗?


Seata中通过feign去扣减商品库存,回到订单服务后抛出异常。订单的数据回滚了,但是商品服务的数据没有回滚,是还有哪些东西需要注意的吗?


参考回答:

没有。


关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/468721?spm=5176.21213303.J_qCOwPWspKEuWcmp8qiZNQ.446.6bb82f3dSLrB4q&scm=20140722.S_community@@%E9%97%AE%E7%AD%94@@468721._.ID_468721-RL_seata%E5%BC%82%E5%B8%B8-LOC_search~UND~community~UND~item-OR_ser-V_3-P0_38


问题四:在seata发起分支提交获取分支提交结果的时候,报了一个异常,导致分支没被移除是怎么回事呀?


在seata发起分支提交获取分支提交结果的时候,报了一个异常,导致分支没被移除(这时候其实rm二阶段提交成功了),这时候定时器handleRetryCommitting,就扫描到还存在globalSession,然后继续doGlobalCommit,然后就出现xaer-nota的情况了,是怎么回事呀?


参考回答:

你看你日志输出时间点,还有如果你client当时打着断点去看很可能链接是断开,tc拿不到status就重试了,不过不影响一致性,只是不断下发一个不存在的事务提交,60秒后就直接全局事务提交了。


关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/470831?spm=5176.21213303.J_qCOwPWspKEuWcmp8qiZNQ.451.6bb82f3dSLrB4q&scm=20140722.S_community@@%E9%97%AE%E7%AD%94@@470831._.ID_470831-RL_seata%E5%BC%82%E5%B8%B8-LOC_search~UND~community~UND~item-OR_ser-V_3-P0_39


问题五:seata如果是服务a,调用服务b,服务b被调用后,服务a中发生异常,服务b相关操作会回滚吗?


seata如果是服务a,调用服务b,服务b被调用后,服务a中发生异常,服务b相关操作会回滚吗?服务a与服务b的相关方法上都需要添加@GlobalTransactional 注解对吗?


参考回答:

无论谁出异常,只要符合回滚条件,tm都会决议回滚。都可以加,一般是服务调用入口加,但是大多数情况下,服务a和服务b都可能作为服务调用入口,所以都加上肯定没问题。


关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/468746?spm=5176.21213303.J_qCOwPWspKEuWcmp8qiZNQ.476.6bb82f3dSLrB4q&scm=20140722.S_community@@%E9%97%AE%E7%AD%94@@468746._.ID_468746-RL_seata%E5%BC%82%E5%B8%B8-LOC_search~UND~community~UND~item-OR_ser-V_3-P0_40

相关文章
|
5月前
|
Kubernetes Cloud Native Java
Seata常见问题之回滚一直在重试如何解决
Seata 是一个开源的分布式事务解决方案,旨在提供高效且简单的事务协调机制,以解决微服务架构下跨服务调用(分布式场景)的一致性问题。以下是Seata常见问题的一个合集
|
5月前
|
SQL Oracle 关系型数据库
seata版本问题之码云拉取代码异常如何解决
Seata是一款开源的分布式事务解决方案,旨在提供高效且无缝的分布式事务服务;在集成和使用Seata过程中,开发者可能会遇到不同的异常问题,本合集针对Seata常见异常进行系统整理,为开发者提供详细的问题分析和解决方案,助力高效解决分布式事务中的难题。
267 2
|
5月前
|
监控 数据库
在Seata中一张表使用了联合主键,在事务回滚时报异常,改为单个主键,就没有这个异常,如何解决?
在Seata中一张表使用了联合主键,在事务回滚时报异常,改为单个主键,就没有这个异常,如何解决?
|
4月前
|
Apache 开发者
Apache Seata 如何解决 TCC 模式的幂等、悬挂和空回滚问题
【6月更文挑战第8天】Apache Seata 是一款分布式事务框架,解决TCC模式下的幂等、悬挂和空回滚问题。通过记录事务状态处理幂等,设置超时机制避免悬挂,明确标记Try操作成功来处理空回滚。Seata 提供丰富配置和管理功能,确保分布式事务的可靠性和效率,支持复杂事务处理场景,为企业业务发展提供支持。
169 7
|
5月前
|
Oracle 安全 Java
Seata常见问题之启动seata一直报空指针异常如何解决
Seata 是一个开源的分布式事务解决方案,旨在提供高效且简单的事务协调机制,以解决微服务架构下跨服务调用(分布式场景)的一致性问题。以下是Seata常见问题的一个合集
|
5月前
|
Nacos 数据库
分布式事务解决方案Seata
分布式事务解决方案Seata
84 1
|
20天前
|
SQL NoSQL 数据库
SpringCloud基础6——分布式事务,Seata
分布式事务、ACID原则、CAP定理、Seata、Seata的四种分布式方案:XA、AT、TCC、SAGA模式
SpringCloud基础6——分布式事务,Seata
|
5月前
|
存储 关系型数据库 MySQL
基于Seata实现分布式事务
通过以上步骤,你可以使用 Seata 实现分布式事务,确保在微服务架构中的事务一致性。Seata 支持多种语言和框架,能够满足不同业务场景的需求。欢迎关注威哥爱编程,一起学习成长。
128 1
|
2月前
|
关系型数据库 MySQL 数据库
SpringCloud2023中使用Seata解决分布式事务
对于分布式系统而言,需要保证分布式系统中的数据一致性,保证数据在子系统中始终保持一致,避免业务出现问题。分布式系统中对数据的操作要么一起成功,要么一起失败,必须是一个整体性的事务。Seata简化了这个使用过程。
55 2
|
2月前
|
Java 关系型数据库 MySQL
(二十七)舞动手指速写一个Seata-XA框架解决棘手的分布式事务问题
相信大家对于事务问题都不陌生,在之前《MySQL事务篇》中曾详解过MySQL的事务机制,在传统的单库环境下开发,咱们可依赖于MySQL所提供的事务机制,来确保单个事务内的一组操作,要么全部执行成功,要么全部执行失败。
下一篇
无影云桌面