一.Bug描述:
使用nacos和feign时, 在进行服务调用时出现报错:
com.netflix.client.ClientException: Load balancer does not have available server for client: nacos-provider
翻译过来:
负载平衡器没有可用的服务器供客户端使用.
再看nacos控制台, nacos-provider没有注册上(服务列表是空的).
二.解决办法:
1.首先前提是:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.1.RELEASE</version>
<relativePath/>
</parent>
2.替换坐标.
这个坐标:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>0.9.0.RELEASE</version>
</dependency>
替换为:
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>2.1.2.RELEASE</version>
</dependency>
解决了.
三.自己测试的正确的结果:
四.原因分析
看翻译:
负载平衡器没有可用的服务器供客户端使用.
再看nacos控制台, nacos-provider没有注册上(服务列表是空的).
说明首先是自己的服务没有注册到nacos上.
再看官网:
https://nacos.io/zh-cn/docs/quick-start-spring-boot.html
和这个帖子:
https://blog.csdn.net/qq_32048567/article/details/103038309
可以看出是原来自己再网上找的依赖不对.