一、事情背景
1、应用部署在edas中时会自动使用默认的nacos,部署完毕,可以在微服务治理-dubbo里面看到相关的服务成功注册到edas的默认nacos。
2、调用服务时报错,查询日志发现:服务调用时不是调用的edas默认nacos的服务,而是调用了应用中配置的nacos的地址。如下截图中。
二、问题原因
经过排查和分析,得到的结论如下:
1、服务注册到了edas默认nacos上,而调用服务时没有调用这个默认的nacos,导致服务无法调用成功。
2、经过阿里云工作人员确认:服务器所在的上海区域不支持nacos 2.0 grpc,导致我们应用中的2.0nacos客户端无法正常访问。
三、解决方案
1、使用自建的nacos,让服务都注册到自建naocs,且客户端都订阅自建nacos。配置成自建的地址截图如下:
2、然后服务启动参数中增加以下参数如下:
-Dnacos.use.endpoint.parsing.rule=false
-Dnacos.use.cloud.namespace.parsing=false