SpringCloud Alibaba微服务实战七 - 分布式事务Seata

http://javadaily.cn/articles/2019/12/19/1576731515587.html

Seata解决方案

在Springcloud Alibaba体系中使用Seata作为分布式事务解决方案,大家可以访问seata官网去了解详情。
这次我们先使用Seata的file配置解决上面出现的问题,后面再来对其改造。

下载安装Seata Server。

    • 从 Release 页面下载Seata Server
    • 下载完成后直接启动Server端服务。
      在Linux/Mac下
      $ sh ./bin/seata-server.sh
      在Windows下
      bin\seata-server.bat

 

 

 

 

# Seata 配置项,对应 SeataProperties 类
seata:
enabled: true
application-id: ${spring.application.name}
tx-service-group: ${spring.application.name}-group
enable-auto-data-source-proxy: true
config:
type: nacos
nacos:
namespace:
serverAddr: http://www.smdroadshow.com:8848
group: SEATA_GROUP
userName: "nacos"
password: "nacos"
registry:
type: nacos
nacos:
application: seata-server
server-addr: http://www.smdroadshow.com:8848
namespace:
userName: "nacos"
password: "nacos"

主要修改如下三处:
service.vgroup_mapping.后面的值修改为配置文件spring.cloud.alibaba.seata.tx-service-group的属性
service.default.grouplist=修改为Seata Server的ip:端口
support.spring.datasource.autoproxy的值修改为true,开启datasource自动代理

生成undo_log表

在微服务的业务库下执行如下语句,生成undo_log表

 

 

开启全局事务

在分布式事务方法入口添加注解@GlobalTransactional,这里只需要在createOrder方法上添加此注解即可!

 

 

posted @ 2021-07-05 13:59  小蚊子大人KN  阅读(154)  评论(0编辑  收藏  举报