出现这个问题,可以参考下列方法进行排除,下列方法都可能会引起此错误
注册问题
可能是服务提供者没有注册进入Eureka,可以先排除一下这个问题
eureka配置
fetch-register一定要设置为true,否则获取不到服务节点的
依赖冲突
<!-- SpringCloud Netflix Eureka Client -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
<version>3.0.3</version>
</dependency>
<!-- SpringCloud Netflix ribbon -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
<version>2.2.9.RELEASE</version>
</dependency>
Eureka中已经内置了ribbon依赖,网上有的帖子说cloud2020在eureka3.x版本去除了ribbon依赖,其实并没有去除,所以不要添加ribbon依赖导致依赖冲突
有的人学习ribbon负载策略引不到某个类,需要添加ribbon的依赖,其实并不用,找不到是因为新版ribbon负载均衡策略的配置改了,需要添加一个配置类Ribbon负载均衡策略找不到_weixin_50292503的博客-CSDN博客
调用方式
如果使用@LoadBalanced负载均衡调用,那么不能采用IP+端口进行调用,而是采用应用名称进行调用(http://应用名称/接口),切记不可使用下划线(_),否则也会找不到服务,可以使用中划线(-)
注:应用名称对应服务提供者配置文件中的spring.application.name,这个一定要配置上
这些也都是我踩过的坑,所以记录一下,希望对大家有所帮助
更多推荐
SpringCloud出现No instances available for
发布评论