• EMERGENCY! EUREKA MAY BE INCORRECTLY CLAIMING INSTANCES ARE UP WHEN THEY'RE NOT. RENEWALS ARE LESSER THAN THRESHOLD AND HENCE THE INSTANCES ARE NOT BEING EXPIRED JUST TO BE SAFE.


    在8762和8763端口启动两个client,关停了其中一个8762的client,再次访问注册中心时,界面上显示了红色粗体警告信息:

    EMERGENCY! EUREKA MAY BE INCORRECTLY CLAIMING INSTANCES ARE UP WHEN THEY'RE NOT. RENEWALS ARE LESSER THAN THRESHOLD AND HENCE THE INSTANCES ARE NOT BEING EXPIRED JUST TO BE SAFE.

    Eureka server和client之间每隔30秒会进行一次心跳通信,告诉server,client还活着。由此图中几个名词需要解释一下:
    Renews threshold:server期望在每分钟中收到的心跳次数 。
    Renews (last min):上一分钟内收到的心跳次数。

    产生原因

    报红的原因是因为Eureka进入了自我保护机制,默认情况下,如果EurekaServer在一定时间内没有接收到某个微服务实例的心跳时,EurekaServer将会注销该实例(默认90s)。但是当网络发生故障时,微服务与EurekaServer之间无法通信,这样就会很危险了,因为微服务本身是很健康的,此时就不应该注销这个微服务,而Eureka通过自我保护机制来预防这种情况(也就是不会注销任何微服务)。

    如何解决Eureka Server不踢出已关停的节点的问题

    在开发过程中,我们常常希望Eureka Server能够迅速有效地踢出已关停的节点,但是新手由于Eureka自我保护模式,以及心跳周期长的原因,常常会遇到Eureka Server不踢出已关停的节点的问题。解决方法如下:

    (1) Eureka Server端:配置关闭自我保护,并按需配置Eureka Server清理无效节点的时间间隔。

    eureka.server.enable-self-preservation    # 设为false,关闭自我保护
    eureka.server.eviction-interval-timer-in-ms # 清理间隔(单位毫秒,默认是60*1000)

    (2) Eureka Client端:配置开启健康检查,并按需配置续约更新时间和到期时间。

    eureka.client.healthcheck.enabled    # 开启健康检查(需要spring-boot-starter-actuator依赖)
    eureka.instance.lease-renewal-interval-in-seconds    # 续约更新时间间隔(默认30秒)
    eureka.instance.lease-expiration-duration-in-seconds # 续约到期时间(默认90秒)

    示例:

    服务器端配置:

    eureka:
        server:
          enable-self-preservation: false
          eviction-interval-timer-in-ms: 4000        

    客户端配置:

    eureka:
      client:
        healthcheck:
          enabled: true
      instance:
        lease-expiration-duration-in-seconds: 30 
        lease-renewal-interval-in-seconds: 10

    注意:
    更改Eureka更新频率将打破服务器的自我保护功能,生产环境下不建议自定义这些配置。

  • 相关阅读:
    Katalon系列十九:元素相同或无法定位时的定位技巧
    Katalon系列十八:用例变量&用例间调用
    读《单核工作法》
    Redis 的主从同步(复制)
    Yii2 框架整体结构
    redis 是如何做持久化的
    php yii 查看帮助时会调用具体脚本类的析构函数
    Redis 底层数据结构介绍
    Redis 的常用命令
    Yii2 框架跑脚本时内存泄漏问题分析
  • 原文地址:https://www.cnblogs.com/zjfjava/p/12153130.html
Copyright © 2020-2023  润新知