记录自己犯过的错误,No instances available for springcloud-porivde

问题描述:springcould eureka ribbon整合时,开启了ribbon负载均衡后,消费者消费生产者提供的服务时,提示No instances available for ******

可能原因1: springcloud-porivder不是生产者配置的名称,检查被调用的服务yml配置文件中的spring.application.name: springcloud-porivder看是否与调用时使用的服务名一致,服务名称不能使用下划线,可以使用中划线。可以使用配置文件中的小写名称,也可以使用eureka注册中心的大写名称,最好统一大小写,避免其他地方出现问题

设置如下
在这里插入图片描述
调用如下
记录自己犯过的错误,No instances available for springcloud-porivde_第1张图片

可能原因2:消费者缺少相应的pom依赖

        
    
        org.springframework.cloud
        spring-cloud-starter-eureka
    
    
        org.springframework.cloud
        spring-cloud-starter-ribbon
    
    
        org.springframework.cloud
        spring-cloud-starter-config
    

每个人环境不同可能需要引入的依赖不同,自行检查相关需要的依赖。我这里使用的版本如下
spring boot版本1.5.9
spring cloud版本Dalston.SR1
jdk版本1.8

可能原因3:Eureka注册中心启动类需要@EnableEurekaServer注解,服务者和消费者都需要再启动类上加入@EnableEurekaClient注解

记录自己犯过的错误,No instances available for springcloud-porivde_第2张图片

可能原因4:消费者的application.xml中需要设置注册中心地址,并且设置在注册中心中检索服务

记录自己犯过的错误,No instances available for springcloud-porivde_第3张图片
fetch-registry默认是true,所以可以不设置

--------------------------分割线--------------------------------------------
最好使用eureka注册中心的大写名称,因为ribbon自定义负载@RibbonClient(name = “SPRINGCLOUD-PORIVDER”, configuration = MyRule.class)规则时,这里只能写大写名称。如果后面调用是用小写名称。则自定义负载规则不生效
记录自己犯过的错误,No instances available for springcloud-porivde_第4张图片

你可能感兴趣的:(Eureka+ribbon,no,instances,availa,服务)