引入依赖

:::tips 在每个微服务中引入Seata的依赖 :::

  1. <!--seata-->
  2. <dependency>
  3. <groupId>com.alibaba.cloud</groupId>
  4. <artifactId>spring-cloud-starter-alibaba-seata</artifactId>
  5. <exclusions>
  6. <!--版本较低,1.3.0,因此排除-->
  7. <exclusion>
  8. <artifactId>seata-spring-boot-starter</artifactId>
  9. <groupId>io.seata</groupId>
  10. </exclusion>
  11. </exclusions>
  12. </dependency>
  13. <dependency>
  14. <groupId>io.seata</groupId>
  15. <artifactId>seata-spring-boot-starter</artifactId>
  16. <!--seata starter 采用1.4.2版本-->
  17. <version>${seata.version}</version>
  18. </dependency>

添加配置

:::tips 在每个微服务的配置文件中添加Seata-TC服务的连接信息,通过服务名称去Nacos中拉取TC服务的地址 :::

  1. seata:
  2. #TC服务注册中心的配置,微服务根据这些信息去注册中心获取tc服务地址
  3. registry:
  4. #注册中心类型 nacos
  5. type: nacos
  6. nacos:
  7. #nacos地址
  8. server-addr: 127.0.0.1:8848
  9. #namespace,默认为空
  10. namespace: ""
  11. #分组,默认是DEFAULT_GROUP
  12. group: DEFAULT_GROUP
  13. #seata服务名称
  14. application: seata-tc-server
  15. username: nacos
  16. password: nacos
  17. #事务组名称
  18. tx-service-group: seata-demo
  19. service:
  20. #事务组与cluster的映射关系
  21. vgroup-mapping:
  22. seata-demo: SZ

:::tips 微服务会通过四个信息去Nacos中拉取TC的地址:

  • namespace:命名空间
  • group:分组
  • application:服务名
  • cluster:集群名

以上四个信息,在刚才的yaml文件中都能找到
image.png

结合起来,TC服务的信息就是:public@DEFAULT_GROUP@seata-tc-server@SH,这样就能确定TC服务集群,然后就可以去Nacos拉取对应的实例信息了 :::