参考文章
10、Eureka 源码解析 之 Eureka Server 自我保护机制
1.自我保护机制
1.1.什么是自我保护机制
自我保护机制的工作机制是:如果在15分钟内超过 85% 的客户端节点都没有正常的心跳,那么Eureka就认为客户端与注册中心出现了网络故障,Eureka Server 自动进入自我保护机制
Eureka Server 在运行期间,如果在15min内有超过15%的客户端节点都没有正常的心跳,那么 Eureka Server 就会进入自我保护机制,不再注销(剔除、下线)服务。
1.2.是否要开启自我保护机制
默认情况下,自我保护机制是被开启的。建议:
- 开发环境 - 关闭;
- 生产环境 - 开启。
1.3.如何关闭自我保护机制
在 Eureka Server 中添加eureka.server.enable-self-preservation
参数,并将值设为false即可关闭自我保护机制。
# 关闭自我保护机制
eureka.server.enable-self-preservation=false
2.EurekaServer服务注销间隔
前文提到,默认配置下,一个服务90s未发送心跳,就会被判定为宕机(DOWN)。但此时该服务并不会被立即从 Eureka Server 中删除。默认情况下, Eureka Server 每隔60s执行一次检测,将宕机的服务注销(下线、剔除)。
在 Eureka Server 中添加eureka.server.eviction-interval-timer-in-ms
参数,以设置服务宕机检测的间隔(单位ms)
# 服务注销间隔
eureka.server.eviction-interval-timer-in-ms=5000