当前位置: 首页 > article >正文

【微服务】Eureka的自我保护机制

Eureka的自我保护模式正是一种针对网络异常波动的安全保护措施,使用自我保护模式能使Eureka集群更加的健壮,稳定的运行。

在正常情况下,Eureka客户端会定期向Eureka服务器发送心跳,以表明它仍然存活和可用。如果Eureka服务器在配置的时间间隔内未能从某个服务器实例收到心跳,它通常会将该实例从注册列表中移除,认为该实例不可用。

然而,在自我保护模式下,如果Eureka服务器在短时间内丢失了对大量服务实例的心跳(15分钟超过85%的客户端),它会认为这是一个网络问题,而不是所有这些服务实例都突然不可用。因此,服务器将进入自我保护模式。

当进入自我保护模式时,会存在以下行为:

  • 停止移除服务实例:Eureka服务器在自我保护模式下不会因为缺少心跳而移除任何服务实例,即使服务实例停止发送心跳,它们仍然会被保留在注册表中。
  • 保持服务注册表状态:这可以确保在网络故障恢复后,服务消费者仍然能够发现所有原先注册的服务实例,无需等待这些实例重新注册和上线。
  • 记录状态和警告:Eureka服务器会在其状态页面上显示它是否处于自我保护模式,并显示相关的警告信息。

Eureka的自我保护模式是可配置的。可以通过配置参数来调整何时触发自我保护模式,或完全关闭此功能。例如,可以通过修改 eureka.server.enable-self-preservation 的配置值来开启或关闭自我保护模式。

eureka:
  server:
    enable-self-preservation: true

自我保护模式默认是开启的,因为它可以在网络不稳定的环境中提供更稳定的服务发现功能。不建议在生产环境中关闭自我保护模式。

当Eureka进入自我保护模式之后,我们可以做以下几个事情解除这种自我保护:

  1. 确保客户端可用性:
    1. 确保所有客户端实例都运行正常,并且网络连接正常,无阻塞或延迟过高。
    2. 检查客户端与 Eureka Server 之间的网络连接是否稳定。
  2. 等待自动恢复:
    1. 正常的情况下,等待网络恢复后,Eureka Server 会自动关闭自我保护模式。
  3. 重启 Eureka Server:
    1. 如果问题仍然存在,尝试重启 Eureka Server。有时候,重启可以解决暂时的问题或状态不一致。
  4. 调整自我保护模式的阈值:
    1. 检查 eureka.server.enableSelfPreservation 配置项,确保它被设置为 true,这是自我保护模式的开启 开关。
    2. 你可以调整 eureka.server.renewalPercentThreshold 来改变触发自我保护模式的阈值。
  5. 查看日志排查问题:
    1. 查看 Eureka Server 和客户端的日志,找出可能导致问题的具体原因。
  6. 关闭自我保护模式:
    1. 使用eureka.server.enable-self-preservation=false来禁用自我保护模式,测试环境可以配置,生产不 建议。

http://www.kler.cn/a/314799.html

相关文章:

  • Vector 深度复制记录
  • 【嵌入式开发】单片机CAN配置详解
  • 3D绘制动态爱心Matlab
  • Springboot 启动端口占用如何解决
  • 《情商》提升:增强自我意识,学会与情绪共处
  • 软件测试面试八股文(超详细整理)
  • (学习记录)使用 STM32CubeMX——配置时钟(入门)
  • 基于Windows系统以tomcat为案例,讲解如何新增自启动服务,定时重启服务。
  • mybatis 和 mybatis-plus
  • mysql批量修改表前缀
  • 【java实现json转化为CSV文件】
  • 【C++二叉树】二叉树的前序遍历、中序遍历、后序遍历递归与非递归实现
  • Kotlin 极简小抄 P3(函数、函数赋值给变量)
  • LeetCode 第416场周赛个人题解
  • springbootweb集成swagger
  • 王道考研视频——操作系统笔记
  • 海外服务器哪个速度最快且性能稳定
  • GRE隧道在实际部署中的优化、局限性与弊端
  • 排序篇(七大基于比较的排序算法)
  • 华为全联接大会HC2024 观会感
  • QMT获取可转债行情数据方法介绍!支持QMT量化软件的券商平台?
  • Oracle(140)如何创建和管理数据库角色?
  • Android14 蓝牙启动流程
  • C++编程语言:基础设施:命名空间(Bjarne Stroustrup)
  • 基于微信小程序的购物系统+php(lw+演示+源码+运行)
  • App端测——稳定性测试