一切福田,不離方寸,從心而覓,感無不通。

Spring cloud集成seata2.0 AT模式实战

在部署好seata 2.0以后,下面进行spring cloud集成seata2.0 AT模式实战环节。

首先,进行数据库环境准备,seata AT模式需要客户端应用创建undo_log表,建表语句如下:

 

创建好seata框架需要的表以后,我们新建一个业务表,参考SQL如下:

 

数据库环境准备好以后,创建一个spring boot项目,我这里使用的spring boot版本是2.7.18,导入相关依赖:

 

编写AccountDO类:

 

编写Mapper层方法:

 

编写Service层类:

 

编写controller层类:

 

编写application.yml配置文件:

 

项目整体结构参考如下:

image-20240828214923312.png

完成编码和配置以后,启动项目,进行转账接口测试,请求之前:

image-20240828214745744.png

进行请求:

image-20240828215551980.png 此时查看应用后端,发现应用报错:

 

通过查看seata-server端,也发现报错日志:

 

如果出现上面错误,需要在nacos配置中心上seata配置增加如下配置:

image-20240828215829731.png


 

增加配置以后,重启seata和应用,重新请求:

image-20240828220206683.png

请求完成以后:

image-20240828215326727.png

可以看到此时转账成功了。

我们人为制造一下异常,查看一下异常情况下能不能正常回滚,修改代码:

 

重启应用,进行请求:

image-20240828220453400.png

查看数据库,数据没有发生变化:

image-20240828220525655.png

可以看到,此时seata进行分布式事务管理是成功的,你也可以在方法执行完成之前进行断点,然后查看客户端undo_log,此时可以看到SQL镜像数据哦。

image-20240828220853513.png

本次主要是介绍seata 2.0版本的AT模式入门,后续有时间会给大家介绍TCC模式、Saga模式以及seata的底层原理,和我们自定义的一些扩展,欢迎大家点点关注。

作者:Coder_文小白
链接:https://juejin.cn/post/7468950874322698274
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。