微服务分布式事务:no available service found in cluster ‘default‘, please make sure registry configure

环境:seata 1.7.x

           nacos 2.x

运行微服务做分布式事务控制,springboot微服务项目启动时报错:no available service found in cluster ‘default‘, please make sure registry correct。大意是服务找不到,系统怀疑是注册信息不对。

这个问题某度查询一下,文章很多,貌似很多人都遇到过,网上各路大神各自有一套解决方法。不过问题的要点没有抓住,这里总结归纳一下,下次遇到问题备查。

1、seata的版本:最新的已经是2.x,网上文章中使用1.4.x的多,我已经项目原因使用的是1.7.x。不同版本有不同的,配置文件也有区别,比如1.4.x的文章中经常提到的file.conf,在1.7.x中已经没有了,2.x也不存在了。

2、客户端的配置问题:seata.tx-service-group 配置项对应问题

    微服务客户端配置:

seata:
  enabled: true
  application-id: storage-service # application name
  tx-service-group: default_tx_group

nacos配置中心配置的参数:

  service.vgroupMapping.default_tx_group=default

  service.default.grouplist=127.0.0.1:8091

一、seata 1.7.x服务器

         因为使用nacos做注册和访问中心,配置文件application.properties需要修改。1.7.x只需要一个配置文件,根据zip包中的sample修改成nacos对应的内容即可。数据存储我用的是mysql,这部分需要设置一下url、用户密码。

这部分的问题有两个:1)、mysql的版本问题。seata1.7的安装包中是5.x驱动,如果mysql是8.x,需要换掉,否则有SSL的连接问题。 2)、seata1.7的客户端配置参数(注册到nacos的配置参数)。文档中专门提供了脚本,不过注册到nacos中是按行的,微服务使用seata一般用整个配置文件了。但是然而整个配置文件方式seata服务器启动的时候报某个url找不到,我不想花时间研究,解决的方法是用脚本导进入,解决seata服务器启动问题;同时创建seata.properties配置dataID,把整个文件导进去。

        说明:seata1.7服务器启动后,注册到nacos的服务是seata-server,组名称是SEATA_GROUP

二、微服务客户端(使用seata)

        客户端启动的时候报错,所谓服务找不到:这里的服务是指seata-server服务。

        网上的文章有很多误导的地方,其实客户端作为微服务也是要注册到nacos的,注册参数包括组名称、服务名称和ip之类,客户端的注册组名称和seata-server服务的组名称并不需要强求一致。解决的方法也很简单:微服务客户端查找seata-server的参数必须包含组名称,不能省略

seata:
  registry:
      type: nacos
      nacos:
        application: seata-server
        server-addr: 127.0.0.1:8848
        group: SEATA_GROUP

CSDN的一篇文章可以同时参考,链接如下:关于seata no available service found in cluster ‘default‘, please make sure registry conf_no available service found in cluster 'default', p-CSDN博客

  • 7
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值