Spring Cloud - Eureka
构成
Eureka Server:心跳检测(30s)、默认注销时间(90s)
Eureka Client:心跳注册续约(30s)、缓存Eureka Server中的信息
Eureka Server(Eureka Client):多个Eureka Server之间通过复制的方式完成服务注册表的同步(高可用)
事件
EurekaInstanceCanceledEvent:失效事件
EurekaInstanceRegisteredEvent:注册事件
EurekaInstanceRenewedEvent:心跳事件
EurekaRegistryAvailableEvent:可用事件
EurekaServerStartedEvent:启动事件
实际使用:编写一个ApplicationListener,然后在里面判断事件的类型是否是上述几种,然后根据事件类型,做一些处理。
常见问题
1、踢出已关停的节点
由于Eureka自我保护模式,以及心跳周期长的原因,常常会遇到Eureka Server不踢出已关停的节点的问题。
修改下面的参数:
eureka.server.enable-self-preservation 、eureka.server.eviction-interval-timer-in-ms
2、多网卡环境下的IP选择问题
Eureka会选择如下要求的的网卡地址作为服务IP:
IP合法(标准ipv4地址)、
索引值最小(eth0, eth1中eth0优先)
且不在忽略列表中(可在application.properites中配置忽略哪些网卡)
修改下面的参数:
eureka.instance.ip-address、eureka.instance.prefer-ip-address
3、服务感知慢
Eureka的wiki上有一句话,
大意是一个服务启动后最长可能需要2分钟时间才能被其它服务感知。
修改下面的参数:
eureka.instance.leaseRenewalIntervalInSeconds。(在生产中,最好坚持使用默认值,因为在服务器内部有一些计算,他们对续约做出假设。)
浙公网安备 33010602011771号