Spring Boot2.x Eureka 主动下线服务与优雅停机(Graceful Shutdown)
参考
- https://www.jianshu.com/p/199e419c025e
- https://blog.csdn.net/u014643282/article/details/116004816
- https://www.cnblogs.com/frankltf/p/12673568.html
- gpt
注意
- Spring Boot 还支持关闭事件监听,在监听事件内可以编写代码实现关闭前的清理工作。
- Eureka 主动下线方式有多种,本文 DiscoveryManager.getInstance().shutdownComponent();方式提示方法过时。
- 主动下线服务与优雅停机是两个东西,可以单独任意使用,只是写在了一篇文章中。
环境
| 环境 | 版本 | 说明 | 
|---|---|---|
| Windows | 10 | |
| VS Code | 1.85.1 | |
| Spring Boot Extension Pack | v0.2.1 | vscode插件 | 
| Extension Pack for Java | v0.25.15 | vscode插件 | 
| JDK | 11 | |
| Spring Boot | 2.3.12.RELEASE | |
| spring-cloud-dependencies | Hoxton.SR12 | mvn依赖 | 
| spring-cloud-starter-netflix-eureka-client | 未设置 | mvn依赖 | 
| spring-cloud-starter-netflix-eureka-server | 未设置 | mvn依赖 | 
| spring-cloud-starter-openfeign | 未设置 | mvn依赖 | 
Eureka主动下线服务
- 任意服务,开放任意接口,执行以下代码即可主动退出服务中心,并且不会再次主动加入服务中心:... import com.netflix.discovery.DiscoveryManager; ... DiscoveryManager.getInstance().shutdownComponent();
优雅停机
准备
Spring Boot 2.3 + 新增内置功能,无需添加依赖。
- 
修改 application.properties。#开启优雅停机,默认是立即停机IMMEDIATE server.shutdown=graceful #缓冲器即最大等待时间 spring.lifecycle.timeout-per-shutdown-phase=20s
- 
IndexController.java测试。package com.xiaqiuchu.demo.controller; import org.springframework.web.bind.annotation.RestController; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; @Slf4j @RestController @RequestMapping("/") public class IndexController { @RequestMapping(value = "index", method=RequestMethod.GET) public String index() throws InterruptedException { log.info("收到新请求"); // 模拟业务耗时处理流程 Thread.sleep(15 * 1000L); // return "hello"; } }
测试
- 运行项目,浏览器访问一次,然后 windows 下 Ctrl+c, linux 下执行kill -2,再次访问。
- 测试得知,已存在的请求将会继续执行并正常返回(超出设置的等待时间则会强制结束),新请求会超时(不会进入控制器)。
    博  主 :夏秋初
地 址 :https://www.cnblogs.com/xiaqiuchu/p/17956150
 
如果对你有帮助,可以点一下 推荐 或者 关注 吗?会让我的分享变得更有动力~
转载时请带上原文链接,谢谢。
    
地 址 :https://www.cnblogs.com/xiaqiuchu/p/17956150
如果对你有帮助,可以点一下 推荐 或者 关注 吗?会让我的分享变得更有动力~
转载时请带上原文链接,谢谢。
 
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号