Eureka Client啓動源碼分析(2)

Eureka Client啓動源碼分析(2)

上篇文章主要分析了Eureka Client啓動的啓動流程
最終都是調用EurekaHttpClient接口的方法。
可以理解爲Eureka Client爲Server層,調用EurekaHttpClient(dao層的方法),進行發送HTTP請求。
下面來分析EurekaHttpClient的實現細節

EurekaHttpClient

public interface EurekaHttpClient {
    EurekaHttpResponse<Void> register(InstanceInfo info);
    EurekaHttpResponse<Void> cancel(String appName, String id);
    EurekaHttpResponse<InstanceInfo> sendHeartBeat(String appName, String id, InstanceInfo info, InstanceStatus overriddenStatus);
    EurekaHttpResponse<Void> statusUpdate(String appName, String id, InstanceStatus newStatus, InstanceInfo info);
    EurekaHttpResponse<Void> deleteStatusOverride(String appName, String id, InstanceInfo info);
    EurekaHttpResponse<Applications> getApplications(String... regions);
    EurekaHttpResponse<Applications> getDelta(String... regions);
    EurekaHttpResponse<Applications> getVip(String vipAddress, String... regions);
    EurekaHttpResponse<Applications> getSecureVip(String secureVipAddress, String... regions);
    EurekaHttpResponse<Application> getApplication(String appName);
    EurekaHttpResponse<InstanceInfo> getInstance(String appName, String id);
    EurekaHttpResponse<InstanceInfo> getInstance(String id);
    void shutdown();
}

這裏使用了裝飾模式和匿名類,進行執行者的切換
在這裏插入圖片描述

實現類 描述
SessionedEurekaHttpClient 定期強制重新連接(會話),防止客戶機永遠堅持特定的Eureka服務器實例。保證了在集羣拓撲結構發生變化時負載分佈均勻。
RetryableEurekaHttpClient 維護隔離列表,所有通信失敗的服務器都被列入隔離列表。第一次成功執行清除此列表,使這些服務器有資格服務未來的請求。一旦所有可用服務器用完,也會清除該列表
RedirectingEurekaHttpClient 在重定向鏈接之後,對最終解析的端點執行請求。 如果必須單獨處理註冊和查詢請求,則應創建兩個不同的實例。
MetricsCollectingEurekaHttpClient 實現請求響應狀態指標採集的Eureka遠程通訊客戶端裝飾器,爲EurekaHttpClient添加響應狀態指標採集向功能
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章