Eureka(6)-- ClusterResolver 集群解析器
文章目录
-
- 1.结论:
- 2.源码分析
- 2.1.ClusterResolver集群解析器负责解析配置的EurekaServer地址
- 2.2 EurekaClient使用了ClusterResolver的两个实现类ZoneAffinityClusterResolver和AsyncResolver来实现注册功能
- 2.3.在DiscoveryClient初始化的时候实例化ZoneAffinityClusterResolver,然后调用getClusterEndpoints,之后将值赋值到AsyncResolver(ClosableResolver)供服务使用,将ClosableResolver赋值给EurekaHttpClientFactory
- 2.4.ResolverUtils的randomize方法,根据IP地址生成不同的集合(修改集合顺序)。
- 3.实验
- 3.1.实验 一:不同ip获得不同的集群集合
- 3.2实验2,同一ip下的应用在相同的Eureka上
1.结论:
Eureka根据IP地址将defaultZone: http://peer2:8002/eureka/,http://peer1:8001/eureka/生成不同的集合
2.源码分析
2.1.ClusterResolver集群解析器负责解析配置的EurekaServer地址
eureka:
client:
serviceUrl:
defaultZone: http://peer2:8002/eureka/,http://peer1:8001/eureka/
public interface ClusterResolver<T extends EurekaEndpoint> {
String getRegion();
List<T> getClusterEndpoints();
}