欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

java.lang.RuntimeException: com.netflix.client.ClientException: Load balancer does not have availabl

程序员文章站 2022-03-09 08:04:24
解决:java.lang.RuntimeException: com.netflix.client.ClientException: Load balancer does not have available server for client: EDU-USER我先简单说一下我用的是哪个组件和注册中心,以供大家参考。我的项目是整合的spring cloud框架,我的注册中心是nacos,服务调用者是openfeign。如果大家用的是eureka + feign 也是可以参考我的解决方式。首先...

解决:java.lang.RuntimeException: com.netflix.client.ClientException: Load balancer does not have available server for client: EDU-USER

java.lang.RuntimeException: com.netflix.client.ClientException: Load balancer does not have availabl
我先简单说一下我用的是哪个组件和注册中心,以供大家参考。

我的项目是整合的spring cloud框架,我的注册中心是nacos,服务调用者是openfeign。

如果大家用的是eureka + feign 也是可以参考我的解决方式。

首先我先讲讲我在报Load balancer does not have available server for client: EDU-USER 这个异常时我的整个搭建。

  • 我的被调用者(即提供者)的pom.xml及application.yml配置文件,是如下
	 <!--服务注册-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
            <version>2.1.0.RELEASE</version>
        </dependency>
spring:
  application:
    name: EDU-USER
  datasource:
    username: root
    password: root
    url: jdbc:mysql://127.0.0.1:3306/online_edu?serverTimezone=GMT%2B8&useSSL=false&useUnicode=true&characterEncoding=UTF-8
    driver-class-name: com.mysql.jdbc.Driver
  jackson:
    date-format: yyyy-MM-dd HH:mm:ss
    time-zone: GMT+8
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848
server:
  port: 8003
  • 我的调用者(即消费者)的pom.xml及application.yml配置文件,是如下
	<!--服务调用-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>
        <!--服务注册-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
            <version>2.1.0.RELEASE</version>
        </dependency>
spring:
  application:
    name: EDU-STATISTICS
  datasource:
    username: root
    password: root
    url: jdbc:mysql://127.0.0.1:3306/online_edu?serverTimezone=GMT%2B8&useSSL=false&useUnicode=true&characterEncoding=UTF-8
    driver-class-name: com.mysql.jdbc.Driver
  jackson:
    date-format: yyyy-MM-dd HH:mm:ss
    time-zone: GMT+8
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848
server:
  port: 8004
  • 我去nacos看我的消费者和提供者的注册情况,如下:
    java.lang.RuntimeException: com.netflix.client.ClientException: Load balancer does not have availabl从上图可以看出我的消费者和提供者都是注册成功了的,那为什么依然还说:Load balancer does not have available server for client: EDU-USER(负载平衡器没有客户端的可用服务器:EDU-USER) 呢??

接下来就讲讲我的解决办法

我的解决方案很简单,在你确定你的搭建没有问题时,就是注册中心消费者和提供者都能注册成功说明你的搭建是没错的。那你只需要重新启动你的提供者和消费者即可,但注意,先启动提供者(被调用者),再启动消费者(调用者)。 我就是这样就解决了这个问题的,那这个问题就先说到这里吧。

这只是我遇到这个问题的解决办法,如果没能帮一些小伙伴解决,那不好意思哦,我暂时还没遇到比较复杂的情况。希望小伙伴可以尽快解决bug,这样就能开心玩耍啦~~ 一起努力变成更优秀的程序媛吧~~ 加油!!!

本文地址:https://blog.csdn.net/weixin_44389218/article/details/109637705