Load balancer does not have available server for client:xxx

今天在搭建一個springcloud項目在搭建以zuul爲網關的時候,項目拋了一個異常,java

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

xxxxx負載均衡

這裏就略過,這裏的forwarding error 表示網關轉發失敗,後面緊接着報了一個這個錯google

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

xxx .net

UnknownHostException: xxx服務名code

而後在網上搜了一下,因而解決了這個問題server

  看異常名其實能夠看出來,未知的主機,故而分析得出來Zuul轉發不到所要轉發的服務,因而看了一下springcloud的eureka配置,發現有一個配置blog

  以下: 這個配置的做用是 在eureka上暴露這個註冊的服務內網IP,因而在eureka註冊中心加上這一句(注:若是是高可用集羣,所要集羣的服務都要加上這個)ip

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包下面的源碼
相關文章
相關標籤/搜索