当前位置:   article > 正文

在Eureka机制下客户端服务优雅停机实践_eureka 优雅停机

eureka 优雅停机

Eureka服务端配置

配置名称配置作用
eureka.server.eviction-interval-timer-in-ms定时清除服务失效的间隔时间
eureka.server.use-read-only-response-cache是否使用Eureka缓存
eureka.server.response-cache-update-interval-msEureka缓存更新间隔时间
eureka.server.enable-self-preservation自我保护机制,默认开启

Eureka客户端配置

配置名称配置作用
eureka.instance.lease-renewal-interval-in-seconds服务续约心跳间隔,默认30s
eureka.instance.lease-expiration-duration-in-seconds没有心跳的淘汰时间,默认为3个心跳,90s
eureka.client.registry-fetch-interval-seconds拉取服务注册信息间隔,默认

优雅停机实现原理

需求:当客户端需要停机时,需要将服务在Eureka服务端下线,然后将已经请求到服务的流量处理完成后再停机。
需求拆分:

  1. 停止节流:Eureka服务端下线服务,需要在尽可能短的时间将服务从服务注册表中删除,同时Eureka服务端还需具备抵御网络抖动的能力
  2. 处理完成已经打到服务的请求,服务需要留足够多的时间来处理请求
  3. 停机

Eureka配置

服务端
eureka.server.eviction-interval-timer-in-ms600000(1min)
eureka.server.use-read-only-response-cachetrue
eureka.server.response-cache-update-interval-ms10000(10s)
eureka.server.enable-self-preservationtrue
客户端
eureka.instance.lease-renewal-interval-in-seconds5
eureka.instance.lease-expiration-duration-in-seconds15
eureka.client.registry-fetch-interval-seconds5

分析不同下线情况下耗时
正常下线耗时:20s = 5s(客户端上报服务下线)+ 10s(Eureka缓存刷新时间) + 5s(客户端拉取注册信息表数据)
异常下线耗时:30s = 15s(客户端3周期没有续约) + 10s(Eureka缓存刷新时间) + 5s(客户端拉取注册信息表数据)

其余线上流量

除调整Eureka配置外,还需要将其余承接线上流量的组件关闭节流,使用@PreDestroy关闭节流。

停机配置

在关闭接流期间打到服务的请求,需要留足够多的时间来处理,因此在使用容器部署的服务需要将容器销毁的等待时间设置为30s以上。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Li_阴宅/article/detail/934469
推荐阅读
相关标签
  

闽ICP备14008679号