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的網絡通信就介紹到這裏了。