为什么会产生eureka的自我保护机制?
为了防止EurekaClient(服务提供者)可以正常运行,但是与EurekaServer网络拥挤的情况下,
EurekaServer不会将EurekaClient服务剔除
什么是Eureka的自我保护进制
默认情况下,如果Eureka在一定时间内没有收到某个微服务实例的心跳,EurekaServer将会注销该实例(默认90秒)。但是当网络分区发生故障(延时,卡顿,拥挤),
微服务与Eureka之间无法正常通信,那么以上行为就变得非常危险了。 因为此时微服务本身是健康的,此时本不应该注销这个微服务。Eureka通过“自我保护模式来
解决这个问题”
eureka客户端
server:
# 关闭eureka的自我保护机制
enable-self-preservation: false
# 每隔2秒,扫描所有的不可用服务并剔除
eviction-interval-timer-in-ms: 2000
eureka服务端
server:
# 关闭eureka的自我保护机制
enable-self-preservation: false
# 每隔2秒,扫描所有的不可用服务并剔除
eviction-interval-timer-in-ms: 2000