Eureka源码分析(十二) 网络通信
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Eureka源码分析(十二) 网络通信相关的知识,希望对你有一定的参考价值。
参考技术A 下面我们来说一下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的网络通信就介绍到这里了。
以上是关于Eureka源码分析(十二) 网络通信的主要内容,如果未能解决你的问题,请参考以下文章
服务治理SpringCloudEureka——Eureka源码分析
服务治理SpringCloudEureka——Eureka源码分析