Eureka优雅关闭服务

1、调用/service-registry端点将状态置为 OUT_OF_SERVICE

2、sleep 缓存刷新时间 + 单个请求处理时间

3、kill 服务pid,让容器执行相关资源的释放以及扫尾工作

4、kill -9 终止服务,杀死进程

5、调用 /service-registry端点将状态置为 CANCEL_OVERRIDE,其实就是向Server端发送DELETE overriddenstatus的请求,这会让Server端 status=UNKNOWN 且 overriddenstatus=UNKNOWN
这里可以写个类容器启动时自动向eureka发出这个请求

@Slf4j
@Component
public class EurekaOverridenStatusCleanListener implements ApplicationRunner {

    @Autowired
    private ServiceRegistryEndpoint serviceRegistryEndpoint;



    @Override
    public void run(ApplicationArguments args) throws Exception {
        serviceRegistryEndpoint.setStatus("CANCEL_OVERRIDE");
    }
}

6、服务定时更新状态线程更新Up状态给Eureka,服务发布完成。无缝发布不影响业务

参考文章地址:https://mp.weixin.qq.com/s?__biz=MzAxNjM2MTk0Ng==&mid=2247487189&idx=1&sn=df3711df17655f582b0eafb429bb3b4c&chksm=9bf4be60ac8337760a8e09f55145ce1e1970447d26b157ce15fcf9d5b6cafe9d62069a29809b&mpshare=1&scene=22&srcid=#rd
这里讲的比较详细

你可能感兴趣的:(Eureka优雅关闭服务)