cheng6563
V2EX  ›  Java

Eureka 把服务踢下线后多久关闭服务最安全?

  •  
  •   cheng6563 · Jul 17, 2020 · 3589 views
    This topic created in 2148 days ago, the information mentioned may be changed or developed.
    我记得有个文章专门说明了这个问题,一下找不到了,有没有老哥有印象收藏了。
    5 replies    2020-07-21 18:46:28 +08:00
    Aethyr
        1
    Aethyr  
       Jul 17, 2020
    默认最极端情况
    定时清理任务 60s
    3 个心跳周期 90s
    消费端缓存 90s

    这玩意儿应该在消费端做容错处理,不应该完全依赖注册中心来发现
    Kyle18Tang
        2
    Kyle18Tang  
       Jul 17, 2020
    这个要看设置的, 默认的时间有点长...
    jjed0119cs04
        3
    jjed0119cs04  
       Jul 21, 2020
    正确得做法应该是,服务下线的时候不要 kill -9,让服务关闭之前调用 eureka 的 shutdownHook 。然后 eurekaClient 还有一个本地缓存,还有可能被访问到这个服务,简单的做法是 shutdownhook 调用了之后先不关 docker,延迟 30s 左右再关。
    jjed0119cs04
        4
    jjed0119cs04  
       Jul 21, 2020
    @jjed0119cs04 很久了,才想起记错了难受,,eureka client 的缓存会被 eureka server 的广播清理的, 会保留的是 eureka 的 ReadOnlyCache,这个是不会主动清理的,方法还是一样,延迟 30s 后再关闭。让这 readyOnly 没被清理的 30s 正好被访问到不会出现服务访问不到的情况。
    cheng6563
        5
    cheng6563  
    OP
       Jul 21, 2020 via Android
    @jjed0119cs04 以 eureka 是会主动通知 client 的吗
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5832 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 307ms · UTC 02:12 · PVG 10:12 · LAX 19:12 · JFK 22:12
    ♥ Do have faith in what you're doing.