No instances available for XXX
解释
No instances available for XXX
没有名为XXX的可用实例
背景
springcloud+eureka+ribbon搭建负载均衡
解决方案
前提:除去负载均衡模块,其余模块均可正常运行
1、检查客户端pom.xml是否引入引入如下ribbon相关依赖
<!--ribbon相关-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-ribbon</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
2、客户端配置文件(application.yml)是否配置eureka相关信息
eureka:
client:
register-with-eureka: false
service-url:
defaultZone: # eureka(或集群)服务
3、消费端配置类上是否配置@LoadBalanced注解
@Bean
@LoadBalanced
public RestTemplate getRestTemplate(){
return new RestTemplate();
}
4、消费端启动类是否添加@EnableEurekaClient注解
5、消费端url前缀应由引入ribbon前的Ip:port修改为eureka中显示的服务名称
该服务名称是在服务端配置文件中配置,如下:
spring:
application:
name: your-service
eureka默认将服务名称转化为大写,且ribbon在负载均衡时仅识别eureka中的大写服务,所以消费端的url前缀为大写的YOUR-SERVICE