1.引入依賴
首先,我們需要在微服務中引入seata依賴:
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-seata</artifactId>
<exclusions>
<!--版本較低,1.3.0,因此排除-->
<exclusion>
<artifactId>seata-spring-boot-starter</artifactId>
<groupId>io.seata</groupId>
</exclusion>
</exclusions>
</dependency>
<!--seata starter 采用1.4.2版本-->
<dependency>
<groupId>io.seata</groupId>
<artifactId>seata-spring-boot-starter</artifactId>
<version>${seata.version}</version>
</dependency>
2.修改配置文件
需要修改application.yml文件,添加一些配置:
seata:
registry: # TC服務注冊中心的配置,微服務根據這些信息去注冊中心獲取tc服務地址
# 參考tc服務自己的registry.conf中的配置
type: nacos
nacos: # tc
server-addr: tajia-nacos:8848
namespace: ""
group: SEATA_GROUP
application: seata-tc-server # tc服務在nacos中的服務名稱
cluster: SH
tx-service-group: seata-demo # 事務組,根據這個獲取tc服務的cluster名稱
service:
vgroup-mapping: # 事務組與TC服務cluster的映射關系
seata-demo: SH
3.啟動storage-service服務
storage-service服務啟動成功,在seata-server控制台看到如下信息,表示storage-service服務已成功注冊到seata。
16:43:44.948 INFO --- [rverHandlerThread_1_1_500] i.s.c.r.processor.server.RegRmProcessor : RM register success,message:RegisterRMRequest{resourceIds='jdbc:mysql://tajia-mysql:33064/seata_demo', applicationId='storage-service', transactionServiceGroup='seata-demo'},channel:[id: 0x6743c3c4, L:/192.168.8.118:8091 - R:/192.168.8.118:61509],client version:1.4.2
nacos服務名稱組成包括?
namespace + group + serviceName + cluster
seata客戶端獲取tc的cluster名稱方式?
以tx-group-service的值為key到vgroupMapping中查找