當前位置:編程學習大全網 - 源碼下載 - Eureka源碼分析(十二) 網絡通信

Eureka源碼分析(十二) 網絡通信

下面我們來說壹下eureka的網絡通信。eureka主要包含兩個方面的網絡通信:

Eureka-Client 請求 Eureka-Server 的網絡通信

Eureka-Server 集群內,Eureka-Server 請求 其它的Eureka-Server 的網絡通信

EurekaJerseyClient ,EurekaHttpClient 接口。主要是基於 Apache HttpClient4 實現的 Jersey Client。關於Jersey,就不在這裏介紹了。

EurekaJerseyClientImpl ,EurekaHttpClient 實現類,看下具體的實現

EurekaJerseyClientBuilder ,EurekaJerseyClientImpl 內部類,用於創建 EurekaJerseyClientImpl 。調用 build方法,創建 EurekaJerseyClientImpl 。

EurekaHttpClient ,Eureka-Server HTTP 訪問客戶端,定義了具體的 Eureka-Server API 調用方法。

EurekaHttpResponse ,請求響應對象。

TransportClientFactory ,創建 EurekaHttpClient 的工廠接口。

AbstractJerseyEurekaHttpClient ,實現 EurekaHttpClient 的抽象類,真正實現了具體的 Eureka-Server API 調用方法。看下具體的實現

JerseyApplicationClient ,實現 Eureka-Client 請求 Eureka-Server 的網絡通信。

JerseyEurekaHttpClientFactory ,創建 JerseyApplicationClient 的工廠類。

JerseyEurekaHttpClientFactoryBuilder ,JerseyEurekaHttpClientFactory 內部類,用於創建 JerseyEurekaHttpClientFactory 。

JerseyReplicationClient ,Eureka-Server 集群內,Eureka-Server 請求 其它的Eureka-Server 的網絡通信。

實現 AbstractJerseyEurekaHttpClient的addExtraHeaders方法,添加自定義頭 x-netflix-discovery-replication=true,看下具體的實現

實現HttpReplicationClient 接口,實現了 submitBatchUpdates方法

MetricsCollectingEurekaHttpClient ,監控指標收集 EurekaHttpClient ,配合 Netflix Servo實現監控信息采集。看下具體的實現

RedirectingEurekaHttpClient ,尋找非 302 重定向的 Eureka-Server 的 EurekaHttpClient 。看下具體的實現

RetryableEurekaHttpClient ,支持向多個 Eureka-Server 請求重試的 EurekaHttpClient 。看下具體的實現

SessionedEurekaHttpClient ,支持會話的 EurekaHttpClient 。執行定期的重建會話,防止壹個 Eureka-Client 永遠只連接壹個特定的 Eureka-Server 。反過來,這也保證了 Eureka-Server 集群變更時,Eureka-Client 對 Eureka-Server 連接的負載均衡。看下具體的實現

對於 Eureka-Server 來說,調用 JerseyReplicationClient的createReplicationClient靜態方法即可創建用於 Eureka-Server 集群內,Eureka-Server 請求 其它的Eureka-Server 的網絡通信客戶端。

對於 Eureka-Client 來說,分成用於註冊應用實例( registrationClient )和查詢註冊信息( newQueryClient )的兩個不同網絡通信客戶端。在 DiscoveryClient 初始化時進行創建。看下具體的實現

eureka的網絡通信就介紹到這裏了。

  • 上一篇:mysql資料庫裏的日期用timestamp還是datetime好
  • 下一篇:生成源代碼繼承
  • copyright 2024編程學習大全網