zoukankan      html  css  js  c++  java
  • Eukeka未删除已经停止的服务

    开发过程中,Eukeka服务端和客户端配置我们一般使用默认配置,但经常发现有些已经停止的服务没有从注册中心删除或很久才删除,关键在于Eureka心跳检测和自我保护机制。客户端按固定周期(lease-renewal-interval-in-seconds)向服务端发送心跳请求,服务端按固定周期(eviction-interval-timer-in-ms)开启EvictionTask任务,在允许租约过期(Eureka在自我保护状态中是不允许租约过期的)的情况下,扫描注册的服务,若发现有租约过期则删除租约(即删除服务注册)。

    客户端的心跳检测参数:

    eureka.instance.lease-renewal-interval-in-seconds: 5                      # 心跳检测间隔时间,默认30
    eureka.instance.lease-expiration-duration-in-seconds: 8                # 过期时间,必须大于心跳间隔时间,默认90

    服务端的服务租约检测:

    eureka.server.enable-self-preservation = false # 是否开启自我保护机制,默认true
    eureka.server.eviction-interval-timer-in-ms = 10000 # 剔除无效服务间隔时间,单位毫秒,默认1分钟

    服务端判断租约是否过期方式为 当前时间>最后一次心跳时间+过期时间(lease-expiration-duration-in-seconds),代码如下:

    上面代码,duration就是客户端定义的过期时间,additionalLeaseMs可以当做0

    若使用默认配置,从服务关闭到从Eureka注册中心删除该服务,最多需要(90+60)秒

  • 相关阅读:
    GUI常用监听事件
    GUI容器之布局管理器
    布局管理器的综合应用
    GUI容器之Panel
    mongodb
    redis持久化
    本地window启动redis
    redis主从模式
    hash 哈希
    set集合
  • 原文地址:https://www.cnblogs.com/zhi-leaf/p/12125135.html
Copyright © 2011-2022 走看看