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包下面的源碼



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM