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中查找