EurekaClientConfig
com.netflix.discovery.EurekaClientConfig,Eureka-Client 配置接口。
1 类关系图
EurekaClientConfig 整体类关系如下图:
本文只解析红圈部分类。
EurekaArchaius2ClientConfig 基于 Netflix Archaius 2.x 实现,目前还在开发中,因此暂不解析。
.2 配置属性
点击 EurekaClientConfig 查看配置属性简介,已经添加中文注释,可以对照着英文注释一起理解。这里笔者摘出部分较为重要的属性:
Region、Zone 相关
getRegion() :Eureka-Client 所在区域( region )。
getAvailabilityZones() :Eureka-Client 所在地区( region ) 可用区( zone )集合。该参数虽然是数组,第一个元素代表其所在的可用区。实现代码如下:
// InstanceInfo.java
public static String getZone(String[] availZones, InstanceInfo myInfo) {
String instanceZone = ((availZones == null || availZones.length == 0) ? "default"
: availZones[0]);
if (myInfo != null
&& myInfo.getDataCenterInfo().getName() == DataCenterInfo.Name.Amazon) {
String awsInstanceZone = ((AmazonInfo) myInfo.getDataCenterInfo())
.get(AmazonInfo.MetaDataKey.availabilityZone);
if (awsInstanceZone != null) {
instanceZone = awsInstanceZone;
}
}
return instanceZone;
}
进步一步理解 Region、Zone 查看《周立 —— Region、Zone解析》。
使用 DNS 获取 Eureka-Server URL 相关
shouldUseDnsForFetchingServiceUrls() :是否使用 DNS 方式获取 Eureka-Server URL 地址。
getEurekaServerDNSName() :Eureka-Server 的 DNS 名。
getEurekaServerPort()