報錯
給SpringClout項目搭了一個Zuul網關,結果啓動之後,一訪問就報錯,最直接的信息就是:
1、com.netflix.zuul.exception.ZuulException: Forwarding error
2、Caused by: com.netflix.client.ClientException: Load balancer does not have available server for client: service-provider
解決辦法:
將zuul服務註冊爲eureka的客戶端
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
原因
看報錯信息,很明顯:Zuul中的負載平衡器沒有客戶端可用的服務器:服務提供程序。我已經啓動了服務器了,爲什麼找不到呢?原因很可能是zuul網關根據名稱去Eureka拉取服務地址的時候沒有拉取到,或者說,zuul還不是Eureka的客戶端,也就是zuul作爲一個客戶端沒有服務器。

之前解決這個問題和理解這個問題看到這兩篇博客,不同原因導致的報錯,這兩篇博客或許能夠提供幫助:SpringCloud:Load balancer does not have available server for client: MICROSERVICECLOUD-DEPTSpring Cloud中,如何解決Feign/Ribbon第一次請求失敗的問題?