Eureka端点注册
http://localhost:7900/eureka/apps/EUREKA-custom
<instance>
<instanceId>instanceid-2019</instanceId>
<hostName>eureka-7900</hostName>
<app>EUREKA-custom</app>
<ipAddr>127.0.0.1</ipAddr>
<status>UP</status>
<overriddenstatus>UNKNOWN</overriddenstatus>
<port enabled="true">1900</port>
<securePort enabled="false">443</securePort>
<countryId>1</countryId>
<dataCenterInfo class="com.netflix.appinfo.InstanceInfo$DefaultDataCenterInfo">
<name>MyOwn</name>
</dataCenterInfo>
</instance>
Eureka元数据
通过配置实例的metadatamap,进行自定义元数据,通过Eureka的DiscoverClient获取元数据信息。可以结合ribbon分发规则使用。网关作为分发规则选择服务时可以作为依据。通过自定义元数据,可以做灰度发布。
Eureka自我保护
自我保护触发
服务实例10个,期望每分钟续约102=20个,期望阈值200.85=17,自我保护少于17时触发
Eureka网卡选择
prefer-ip-address: true
ip-address: 实际能访问到的Ip
Eureka健康检查
eureka:
client:
healthcheck:
enabled: true
将client自身健康情况同步到Server,通过admin等健康检查组件查看状态
Eureka自定义配置
EurekaServerConfigBean:Eureka Server配置。
EurekaInstanceConfigBean:Eureka Client实例配置。
EurekaClientConfigBean:Eureka Client 客户端和服务端交互配置
Eureka监听事件
EurekaInstanceCanceledEvent 服务下线事件
EurekaInstanceRegisteredEvent 服务注册事件
EurekaInstanceRenewedEvent 服务续约事件
EurekaRegistryAvailableEvent 注册中心可用事件
EurekaServerStartedEvent 注册中心启动
Eureka缺陷
由于集群间的同步复制是通过HTTP的方式进行,基于网络的不可靠性,集群中的Eureka Server间的注册表信息难免存在不同步的时间节点,不满足CAP中的C(数据一致性)。
客户端选项
#续约发送间隔默认30秒,心跳间隔
eureka.instance.lease-renewal-interval-in-seconds=5
#表示eureka client间隔多久去拉取服务注册信息,默认为30秒,对于api-gateway,如果要迅速获取服务注册状态,可以缩小该值,比如5秒
eureka.client.registry-fetch-interval-seconds=5
# 续约到期时间(默认90秒)
eureka.instance.lease-expiration-duration-in-seconds=60
服务端选项
#关闭自我保护模式
eureka.server.enable-self-preservation=false
#失效服务间隔
eureka.server.eviction-interval-timer-in-ms=3000