zoukankan      html  css  js  c++  java
  • Load balancer does not have available server for client:xxx

    今天在搭建一个springcloud项目在搭建以zuul为网关的时候,项目抛了一个异常,

    com.netflix.zuul.exception.ZuulException: Forwarding error

    xxxxx

    这里就略过,这里的forwarding error 表示网关转发失败,后面紧接着报了一个这个错

    Caused by: com.netflix.client.ClientException: null

    xxx 

    UnknownHostException: xxx服务名

    然后在网上搜了一下,于是解决了这个问题

      看异常名其实可以看出来,未知的主机,故而分析得出来Zuul转发不到所要转发的服务,于是看了一下springcloud的eureka配置,发现有一个配置

      如下: 这个配置的作用是 在eureka上暴露这个注册的服务内网IP,于是在eureka注册中心加上这一句(注:如果是高可用集群,所要集群的服务都要加上这个)

    eureka:
      client:
    
    instance:
      #register ip to eureka
      prefer-ip-address: true

    至此,完美解决这个问题;


    但是 紧接着又有了新的问题:
    com.netflix.client.ClientException: Load balancer does not have available server for client ...
    这里就把重要的异常贴进来哈
    报错的大致意思是
    没有可用的负载均衡的客户端服务
    于是 又开始google,
    发现加上
    <dependency>  
        <groupId>org.springframework.cloud</groupId>  
        <artifactId>spring-cloud-starter-eureka</artifactId>  
    </dependency>  
    这个依赖 可以完美解决这个问题
    至于为什么,大概是这个包里面有默认配置LoadBanlance的
    可以看看 org.springframework.cloud.client.loadbalancer包下面的源码


  • 相关阅读:
    day03--变量与基本数据类型
    day02--编程语言的分类与Python开发环境的搭建
    day01--编程与计算机组成原理
    基本数据类型操作
    python格式化字符串
    Python垃圾回收机制
    day04作业
    day03作业
    Pycharm2018安装与激活
    Python入门-python浅谈
  • 原文地址:https://www.cnblogs.com/ChoviWu/p/10083136.html
Copyright © 2011-2022 走看看