seata事务组关联集群地址的问题
来源:15-7 Seata Client配置Nacos

HenceForward
2024-08-23
在seataServer.properties里面配置的集群地址并未生效,也无法实现切换集群地址,seata-client会坚持从nacos注册中心获取seata集群的地址。请问这是什么原因导致的?
service.vgroupMapping.train-group=default
# 下面的配置并未生效,注释掉或者改成错误的都不会影响seata全局事务发挥作用
service.default.grouplist=1.1.1.1:8091
而且我在测试过程中发现,这里service.vgroupMapping.train-group
指定的集群名称,似乎需要和seata-server在nacos中注册的集群名称保持一致,并不可以随意切换。请问是我哪里配置错误了吗?
我怕我描述的不够清晰,下面给出例子:
- seate-server的applicaiton.yaml
seata:
config:
# support: nacos, consul, apollo, zk, etcd3
type: nacos
nacos:
server-addr: 192.168.124.10:8848
namespace: train-12306
group: SEATA_GROUP
data-id: seataServer.properties
registry:
type: nacos
nacos:
application: seata-server
server-addr: 192.168.124.10:8848
group: SEATA_GROUP
namespace: train-12306
cluster: seata-cluster # 注意这里不是default
- seata-client 的配置
seata:
config:
# 获取到全局的db配置
type: nacos
nacos:
server-addr: 192.168.124.10:8848
namespace: train-12306
group: SEATA_GROUP
data-id: seataServer.properties
registry:
type: nacos
nacos:
application: seata-server
server-addr: 192.168.124.10:8848
group: SEATA_GROUP
namespace: train-12306
cluster: seata-cluster # 这里必须保证和seata-server一致
# 把事务组的配置外放
tx-service-group: train-group
- seataServer.properties的配置
# 这里如果不和 seata-server 的 注册 cluster 保持一致就无法通过nacos获取地址,所以课程中说的效果要如何做到??
service.vgroupMapping.train-group=seata-cluster
# 这里直接给一个错误的url,事实上根本就不会生效
service.seata-cluster.grouplist=192.168.124.20:0
补充:
另外,我测试了使用seata集群同时注册到naocs,如图所示,发现这是可行的,nacos会轮询使用seata的服务端。
因此我觉得此处是老师讲课有误,无需手动配置事务组与集群地址关联,且即使手动关联也无法生效。而因配置seata服务集群实现高可用。
这里我给出seata-client的配置,无需关联nacos配置中心,且直接在客户端中指定事务组关联的集群名称就行,不在远程配置中心中加入配置。同样能实现需求。
seata:
registry:
# support: nacos, eureka, redis, zk, consul, etcd3, sofa
type: nacos
nacos:
server-addr: 192.168.124.10:8848
application: seata-server
group: SEATA_GROUP
namespace: train-12306
cluster: seata-cluster
# 配置全局事务组
tx-service-group: train-group
service:
vgroup-mapping:
train-group: seata-cluster
而且这里我提出猜想,seata-server注册的nacos中心,无需和微服务一样,因为在seata-client的配置需要指定seata-server的nacos地址。
请答疑解惑,谢谢。
写回答
1回答
-
为同学点赞,能自己专研!关于集群,我课程里没有介绍,这块得参考官方的文档,目前seata捐给apache了,版本也变了,我也得找时间重新研究。
012024-09-06
相似问题