在学习seata的时候,很突然的就遇到这个问题。在seata官网解释说是事务分组和集群对应的关系,需要在client端配置。

我使用nacos来做配置中心
在这里插入图片描述

在红框标注的内容里,第三行的无序列表就说明了会用service.vgroupMapping.事务分组名去配置中心找TC的集群名称。
所以只需要在nacos的配置中心中加上Data-Idservice.vgroupMapping.事务分组名,值设置为default
在这里插入图片描述

有一个深坑,别看文档上写在applicaiton.properties上配置了service.vgroupMapping,其实是无效的。只有config.type=file才有效

贴上上面的application.properties内容

seata.tx-service-group=my_test_tx_group ---------------> 事务分组配置(在v1.5之后默认值为default_tx_group)
seata.service.vgroup-mapping.my_test_tx_group=default  ---------------> 指定事务分组至集群映射关系(等号右侧的集群名需要与Seata-server注册到Nacos的cluster保持一致)
seata.registry.type=nacos      ---------------> 使用nacos作为注册中心
seata.registry.nacos.server-addr=nacos注册中心IP:端口
seata.registry.nacos.application=seata-server     ---------------> Seata服务名(应与seata-server实际注册的服务名一致)
seata.registry.nacos.group=SEATA_GROUP            ---------------> Seata分组名(应与seata-server实际注册的分组名一致)
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐