服务提供者
默认会每隔30秒向Eureka发送心跳,Eureka默认90秒还没有收到服务提供者发出的心跳就会标记剔除,每隔60秒剔除一次标记的服务。开发阶段可以适当缩短
eureka:
instance:
lease-expiration-duration-in-seconds: 90 # 90秒即过期
lease-renewal-interval-in-seconds: 30 # 30秒一次心跳
服务消费者
默认每隔30秒拉取一次服务列表,开发阶段可适当缩减
eureka:
client:
fetch-registry: true #拉去列表开关,默认开启
registry-fetch-interval-seconds: 30 #拉取间隔,默认30秒
失效剔除
eureka:
server:
eviction-interval-timer-in-ms: 60000 # 扫描失效服务的间隔时间(默认为60*1000ms)
自我保护:
eureka:
server:
enable-self-preservation: true# 开启自我保护模式(默认为打开)
当一个服务未按时发送心跳时,Eureka会统计这个心跳失败的服务实例,最近15分钟的成功比例是否低于85%(表明这个服务实例网路不稳定)。
当满足以上条件,在这个服务过期时Eureka就会把当前实例的注册信息保护起来,不予剔除。生产环境下这很有效,保证了大多数服务依然可用。
如果不满足则会直接剔除。