简述Eureka 失效剔除和自我保护机制 ?
参考答案:
Eureka是一个开源的服务注册和发现组件,主要用于微服务架构中的服务治理。Eureka包含两个核心机制:失效剔除和自我保护机制。
失效剔除机制:
Eureka Server会定期(默认每隔60秒)检查服务实例的健康状况。如果一个服务实例超过90秒没有发送心跳,Eureka Server会将其视为不健康的服务实例,并从服务实例列表中剔除。这种机制主要用于处理非正常关闭的服务实例,如内存溢出、进程被杀死、服务器宕机等。
自我保护机制:
自我保护机制是Eureka Server的一种容错机制。当Eureka Server在短时间内丢失过多客户端(例如,网络分区故障导致服务实例与Eureka Server之间无法正常通信)时,Eureka Server会进入自我保护模式。在自我保护模式下,Eureka Server会保护服务注册表中的信息,不再删除服务注册表中的数据(即不会注销任何微服务)。这样可以防止因网络故障导致的大量服务实例被错误地注销。当网络故障恢复后,Eureka Server会自动退出自我保护模式。
自我保护机制的触发条件是基于Eureka Server期望每分钟收到客户端实例续约的阈值(Renews threshold)和Eureka Server最后1分钟实际收到的客户端续约数量(Renews last min)。如果实际收到的续约数量低于阈值的85%,Eureka Server就会触发自我保护机制。
以上就是对Eureka的失效剔除和自我保护机制的简要描述。这两个机制共同保证了Eureka Server在高可用性和容错性方面的表现。