码上敲享录 > SpringCloud面试题 > 什么是Eureka的自我保护模式,

什么是Eureka的自我保护模式,

上一章章节目录下一章 2023-07-16已有240人阅读 评论(0)

Eureka的自我保护模式是一种机制,旨在防止Eureka注册中心因为网络或其他原因导致的服务失效而误删正常的服务实例。当Eureka Server节点在一定时间内没有收到来自客户端的心跳时,它将进入自我保护模式。


在自我保护模式下,Eureka Server将保留当前已经注册的所有服务实例的信息,即使它们的心跳停止更新。这样做的目的是保证服务实例不会因为一时的网络问题或者瞬时的故障被错误地移除,避免因为Eureka Server的误删而影响正常的服务调用。自我保护模式的目标是可用性优先,即尽可能地保持服务实例的可用性,而不是严格遵守心跳规则。


自我保护模式的工作原理如下:


1. Eureka Server在一定时间内(默认为90秒)没有收到来自客户端的心跳后,会触发自我保护模式。


2. 进入自我保护模式后,Eureka Server会保留当前已经注册的所有服务实例的信息,不再剔除没有续约的实例。


3. Eureka Server会定期检测心跳失败的实例数是否超过阈值(默认为85%)。如果超过阈值,则认为Eureka Server处于网络故障、重负载等异常状态,将退出自我保护模式。


4. 一旦Eureka Server退出自我保护模式,它会重新按照正常的规则剔除长时间没有心跳的服务实例。


需要注意的是,虽然自我保护模式可以保护现有的服务实例不被误删,但这也可能导致Eureka Server注册表中出现过期的、无效的服务实例。因此,在实际生产环境中,如果长时间没有心跳的服务实例属于故障或者已下线状态,应该尽快修复或将其从注册中心中清理掉,以保证注册信息的准确性。


自我保护模式是Eureka的一项重要功能,可以提高系统的稳定性和可用性,特别适用于面临网络波动或暂时故障的分布式环境。


向大家推荐《Activiti工作流实战教程》:https://xiaozhuanlan.com/activiti
0

有建议,请留言!

  • *您的姓名:

  • *所在城市:

  • *您的联系电话:

    *您的QQ:

  • 咨询问题:

  • 提 交