http://t.csdn.cn/1OhMf
二.在seata搭建时配置registry.conf和file.conf 注册配置管理:registry中设置注册中心(如nacos)的地址,以及配置拉取;
registry {
# tc服务的注册中心类,这里选择nacos,也可以是eureka、zookeeper等
type = "nacos"
nacos {
# seata tc 服务注册到 nacos的服务名称,可以自定义
application = "seata-tc-server"
serverAddr = "127.0.0.1:8848"
group = "DEFAULT_GROUP"
namespace = ""
cluster = "SH"
username = "nacos"
password = "nacos"
}
}
config {
# 读取tc服务端的配置文件的方式,这里是从nacos配置中心读取,这样如果tc是集群,可以共享配置
type = "nacos"
# 配置nacos地址等信息
nacos {
serverAddr = "127.0.0.1:8848"
namespace = ""
group = "SEATA_GROUP"
username = "nacos"
password = "nacos"
dataId = "seataServer.properties"
}
}
三.微服务集成Seata(此处为XA模式)
1.添加pom文件:
com.alibaba.cloud
spring-cloud-starter-alibaba-seata
seata-spring-boot-starter
io.seata
io.seata
seata-spring-boot-starter
${seata.version}
2.修改配置文件
每个微服务需要修改application.yml文件,添加一些配置:
seata:
registry: # TC服务注册中心的配置,微服务根据这些信息去注册中心获取tc服务地址
# 参考tc服务自己的registry.conf中的配置
type: nacos
nacos: # tc
server-addr: 127.0.0.1:8848
namespace: ""
group: DEFAULT_GROUP
application: seata-tc-server # tc服务在nacos中的服务名称
cluster: SH
tx-service-group: seata-demo # 事务组,根据这个获取tc服务的cluster名称
service:
vgroup-mapping: # 事务组与TC服务cluster的映射关系
seata-demo: SH
data-source-proxy-mode: XA
在多个微服务调用的方法前,加入
@GlobalTransactional
即可实现事务组的搭建管理
具体参考:【微服务】(十五)—— Seata 的部署和集成_机智兵的博客-CSDN博客_微服务整合seata
存在的问题:
四.分支事务常见问题:1.can not register RM,err:can not connect to services-server
分支事务注册异常
查看seata数据库中分支是否出现重复创建等问题,
若出现则删除表,
重启服务,服务自动注册;



