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

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

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

设置如下
在这里插入图片描述
调用如下
在这里插入图片描述

可能原因2:消费者缺少相应的pom依赖
        <!-- 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>

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

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

在这里插入图片描述

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

在这里插入图片描述
fetch-registry默认是true,所以可以不设置

--------------------------分割线--------------------------------------------
最好使用eureka注册中心的大写名称,因为ribbon自定义负载@RibbonClient(name = “SPRINGCLOUD-PORIVDER”, configuration = MyRule.class)规则时,这里只能写大写名称。如果后面调用是用小写名称。则自定义负载规则不生效
在这里插入图片描述

  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值