【微服务 - easy视频 | day04】Seata解决分布式事务

文章目录

前言

本项目非原创,我只是个小小白,跟随 b 站脚步,找到老罗的这个项目,视频来源于:
https://www.bilibili.com/video/BV1oEUkY6EFy/?spm_id_from=333.1387.homepage.video_card.click

本人不分享项目源码,支持项目付费!!!

Seata解决分布式事务

(可以好好看看seata官网中的讲述)
seata官网: https://seata.apache.org/zh-cn/docs/user/configurations

在处理发表评论的操作时,需要对评论表中进行数据插入,也要对视频表中对应视频的评论数进行修改。

  • 评论表数据插入操作是在interact的服务中,
  • 视频表的评论数修改操作是在web服务中,

两个服务会单独连接数据库,此时使用@Transactional注解无法保证事务的一致性。

例如:在方法最后增加一个除以零的操作,执行方法后,评论的insert没有成功实现,而web服务中的评论数却增加了。没有进行回滚。

解决办法:使用seata中的@GlobalTransactional(rollbackFor = Exception.class)可以实现对分布式事务的回滚。

相关推荐
天河归来3 小时前
第三方接口不稳定,如何让核心任务继续完成
java·大数据
Knight_AL3 小时前
Java 文件下载时文件名中的 `#` 被转换成 `%23`?一次 URL 编码与解码问题排查
java·开发语言
利威尔xu3 小时前
Go IM 源码实战(14):本地缓存快 3000 倍,失效却难 10 倍
后端·缓存·微服务·面试·golang
ZhengEnCi4 小时前
GPT-6 Astra 爆改 Qwen 权重真有那么神吗:权重空间编程 0.016% 参数的真相
算法·架构
逃逸线LOF4 小时前
Ribbon负载均衡原理(Irule组件、源码分析)
后端·spring cloud·ribbon
砚底藏山河4 小时前
python量化自定义周期 K 线合成
java·开发语言·数据库·python·金融
利威尔xu5 小时前
Go IM 源码实战(13):30 个会话只有 2 个红点,未读数错在三条路径
redis·后端·微服务·面试·golang
猿究院_夏燊5 小时前
MySQL 的四种隔离级别
java·数据库·mysql
码流子6 小时前
移动收费怎么做?手持终端+App+收费中心的架构实践
java·开发语言·架构