如何解決Eureka連接失敗問題?
問題現象
使用Eureka客戶端連接-Eureka服務端時,報錯Cannot execute request on any known server,如下圖所示。

或是報錯There is no known eureka server; cluster server list is empty,如下圖所示。

問題原因
Eureka客戶端無法連通任意您指定的Eureka服務端地址,或是您指定的Eureka服務端地址配置不符合標準格式。
解決方案
請檢查您在客戶端配置中指定的eureka.client.service-url.defaultZone配置項,確保所填寫的服務端地址正確且在客戶端側能夠telnet通。格式需為//{server-ip}:{server-port}/eureka,如果為多節點服務端,則不同節點之間使用英文逗號分隔,如下圖所示。


如何診斷注冊到Eureka服務的健康狀態?
注冊到Eureka的服務有時可能會因為宕機或者網絡原因而無法繼續提供服務,Eureka提供了健康檢測機制來保證消費者不會調用到不健康的服務。
您也可以在Eureka實例控制臺-服務管理-服務列表,選擇服務,點擊詳情按鈕,查看當前服務實例的實時健康狀態。當服務實例出現不健康的情況時,Eureka服務端會定期對其進行驅逐。若此類情況發生,請檢查您服務的真實狀態。
如何查看Eureka開源控制臺UI?
默認不支持查看您實例的Eureka開源控制臺UI,您可以通過我們提供的Eureka實例控制臺對Eureka的基本信息進行查詢,并進行相關管理端操作,功能更加全面。
如何解決Eureka服務消費者獲取不到服務提供者地址的問題?
問題現象
您已經試圖將服務消費者和服務提供者注冊到Eureka,但服務消費者獲取不到提供者地址,報錯Load balancer does not have available server for client: {your-service-name},如下圖所示。

問題原因
服務名為{your-service-name}的服務在Eureka中不存在或健康狀態不為健康。
解決方案
檢查您服務名為{your-service-name}的服務注冊情況。確保客戶端成功注冊,注冊成功后,客戶端將打印如下日志。

注冊完成后,到Eureka控制臺再次確認服務的注冊情況,在服務管理-服務列表可以看到注冊的服務,點擊服務詳情,可以查看對應的ip端口信息。
當服務消費者和服務提供者均在Eureka注冊成功,在控制臺服務列表中顯示時,服務調用才有可能成功。
如何解決消費者無法獲取最新提供者信息的問題?
問題現象
您已經試圖將服務消費者和服務提供者注冊到Eureka,且在Eureka控制臺已確保服務被成功注冊,但仍報錯Load balancer does not have available server for client: {your-service-name},如下圖所示。

或是您的服務提供者信息(如:地址)發生了變化,但消費者從服務端獲取到的仍為舊信息,導致服務調用失敗。
問題原因
正常配置下,Eureka客戶端會以一定的時間間隔定期向服務端獲取服務的增量更新信息。當服務消費者端的數據獲取間隔(eureka.client.registry-fetch-interval-seconds)設置過長時,消費者將無法及時感知到服務端最新數據的更新。
解決方案
將您服務消費者客戶端配置中的數據獲取間隔(eureka.client.registry-fetch-interval-seconds)時間改小,如改為5秒,如下圖所示。但過小的時間間隔會增大客戶端的工作負擔。
