1. 程式人生 > 其它 >SpringCloud Alibaba微服務實戰七 - 分散式事務Seata

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方法上新增此註解即可!

小蚊子大人