關於分佈式事務seata
客戶端啓動報錯
no available service 'default' found, please make sure registry config correct
先決條件
1.seata 正常啓動並在nacos註冊中心的服務列表中有該服務
2.seata 的config.txt配置文件信息是否在nacos-->配置管理-->配置列表 --> namespace所對的命名空間中是否存在seata的配置
報錯原因
1.原因一:default大小寫
2.原因二:獲取不到服務
3.原因三:seata的registry.conf中nacos的配置是否正確
問題解決
原因一:在nacos中cluster默認是大寫DEFAULT,在registry.conf中
nacos {
application = "seata-server"
serverAddr = ""
group = "SEATA_GROUP"
namespace = ""
cluster = "default"
username = ""
password = ""
}
nacos的cluster我們配置的是小寫default,客戶端seata registry 的配置將cluster: default
seata:
registry:
type: nacos
nacos:
application: ${
nacos.seata.application}
server-addr: ${
nacos.instance.hostname1}
namespace: ${
nacos.namespace}
group: ${
nacos.group}
username: nacos
password: nacos
cluster: default
原因二:獲取不到服務在Seata config.txt 配置中添加自己的服務
如:service.vgroupMapping.provider_base_tx_group=default
查看客戶端seata配置:
seata:
enabled: true
application-id: seata-server
tx-service-group: provider_base_tx_group
安裝官方配置流程,原因一和原因二仍未解決此問題
原因三:檢查seata的registry.conf中nacos的配置是否正確
示例:
nacos {
application = "seata-server"
serverAddr = "ip:8848"
group = "TRUNK_GROUP"
namespace = "c4832bc1-86f5-49a0-b253-ebd08e6b81d9"
cluster = "default"
username = "nacos"
password = "nacos"
}
其中nacos.serverAddr 爲 nacos 註冊中心的地址
group爲分組
namespace爲命名空間
確保namespace 和 應用服務註冊的空間爲同一個環境