SpringBoot优雅停机
对应用进程发送停止指令之后能够保证正在执行的业务操作不受影响。
如何保障在停机请求之后,当前请求处理不影响,但是无法接受新的请求,等到全部的请求都处理完成之后,再进行停机。 Linux常用的 kill 指令kill -15:kill指令默认就是-15,只是发送一个 SIGTERM 信号通知进程终止,由进程自行决定怎么做,即进程不一定会终止。 kill -9:强制终止进程,进程会被立刻终止 kill -2:类似 Ctrl+C 退出,会先保存相关数据再终止进程。
查找 PID 命令:ps -ef | grep -a java | grep "TomatoStudySpringApplication" @RestController public class ShutdownDemoController implements DisposableBean { @GetMapping("/shutdownDemo") public String shutdownDemo() throws InterruptedException { // 业务耗时处理流程 Thread.sleep(5 * 1000L); return "hello"; } @Override public void destroy() throws Exception { System.out.println("destroy bean....."); } }
kill -2 和 kill -15(kill)会执行处理逻辑,而 kill -9 什么都不输出。 destroy bean.....Spring boot 结合 kill -2
application.yml server: # 启用优雅停机。graceful 优雅、优美。默认为 immediate 立刻终止 shutdown: graceful spring: lifecycle: # 设置优雅停机的缓冲时间 # 缓冲时间用完了,不管请求有没有执行完毕,都会终止进程。 timeout-per-shutdown-phase: 1s
测试代码: @RestController public class ShutdownDemoController implements DisposableBean { @GetMapping("/shutdownDemo") public String shutdownDemo() throws InterruptedException { // 业务耗时处理流程 Thread.sleep(15 * 1000L); return "hello"; } @Override public void destroy() throws Exception { System.out.println("destroy bean....."); } }
使用 kill -2 模拟关闭过程(不能使用kill -9,使用kill -9会立刻杀死进程,优雅停机不会起作用)。 情况一:缓冲时间 > 业务耗时处理流程 # 收到 kill -2 的终止信号,开始优雅停机,不再接受新请求,等待正在处理的请求执行完毕 2022-05-12 17:03:56.774 INFO 40738 --- [ionShutdownHook] o.s.b.w.e.tomcat.GracefulShutdown : Commencing graceful shutdown. Waiting for active requests to complete # 当前请求处理完成,终止进程 2022-05-12 17:04:01.028 INFO 40738 --- [tomcat-shutdown] o.s.b.w.e.tomcat.GracefulShutdown : Graceful shutdown complete destroy bean.....情况二:缓冲时间 < 业务耗时处理流程 2022-05-12 17:05:38.848 INFO 40770 --- [ionShutdownHook] o.s.b.w.e.tomcat.GracefulShutdown : Commencing graceful shutdown. Waiting for active requests to complete # 缓冲时间已到,但是请求没有处理完成,直接停机 2022-05-12 17:05:48.853 INFO 40770 --- [ionShutdownHook] o.s.c.support.DefaultLifecycleProcessor : Failed to shut down 1 bean with phase value 2147483647 within timeout of 10000ms: [webServerGracefulShutdown] 2022-05-12 17:05:48.859 INFO 40770 --- [tomcat-shutdown] o.s.b.w.e.tomcat.GracefulShutdown : Graceful shutdown aborted with one or more requests still active destroy bean.....Spring boot 结合 kill -2Spring boot 结合 shutdown 端点
POM依赖: org.springframework.boot spring-boot-starter-actuator
application.yml management: # 暴露actuator的全部全部端点 endpoints: web: exposure: include: "*" # 启用shutdown端点,默认false endpoint: shutdown: enabled: true
POST 请求 /actuator/shutdown 端点即可关闭应用,作用和 kill -2 相同,也可以实现优雅停机。 2022-05-12 17:15:56.014 INFO 40864 --- [ Thread-18] o.s.b.w.e.tomcat.GracefulShutdown : Commencing graceful shutdown. Waiting for active requests to complete 2022-05-12 17:15:56.020 INFO 40864 --- [tomcat-shutdown] o.s.b.w.e.tomcat.GracefulShutdown : Graceful shutdown complete 2022-05-12 17:15:56.021 INFO 40864 --- [ Thread-18] o.apache.catalina.core.StandardService : Stopping service [Tomcat] 2022-05-12 17:15:56.023 INFO 40864 --- [ Thread-18] o.a.c.c.C.[Tomcat].[localhost].[/] : Destroying Spring FrameworkServlet "dispatcherServlet" destroy bean.....web 服务器
web 容器名称
行为说明
tomcat 9.0.33+
停止接收请求,客户端新请求等待超时。
Reactor Netty
停止接收请求,客户端新请求等待超时。
Undertow
停止接收请求,客户端新请求直接返回 503。
在智慧城市建设中,区块链将发挥怎样的作用?资本实验室今日创新观察聚焦前沿科技创新与传统产业升级张珂作为一种分布式数字记录与存储系统,区块链在透明度安全性等方面的优势正在得到验证,而相关应用已经初具雏形。研究还表明,区块链技
艺术人工智能正在攻占的下一个领域资本实验室今日创新观察聚焦前沿科技创新与传统产业升级齐达人类自诞生以来,就一直在通过创造工具来帮助甚至替代自己从事的工作。从铁器到风车,从指南针到纺纱机,从电话到互联网,新的工具伴
人工智能get新技能机器翻译如何促进国际贸易?资本实验室今日创新观察聚焦前沿科技创新与传统产业升级李鑫你不懂的,机器懂。你懂的,机器更懂。这正是人工智能在许多领域超越人类的体现,也是我们有必要把许多工作交给人工智能的原因。在国
突破传统,新技术与新模式如何推动建筑业进化资本实验室今日创新观察聚焦前沿科技创新与传统产业升级李鑫在各行业应对新技术和新模式的变革中,建筑业就像一个身躯庞大但又步履缓慢的大个子。一方面,建筑业对整体经济的贡献毋庸置疑,但另
头条搜索百姓关注抽奖攻略头条搜索百姓关注抽奖帮女郎抽奖垄上行抽奖活动还在火热进行中。最近有条友反馈了一些与活动相关问题,我做了一些总结。1。什么时候抽可以抽中大红包?现在比不上之前了,上个月很容易抽到两元
享受舒适睡眠简单先选择试睡100天实测Emma软硬双面床垫序作为一个长期伏案工作者,多多少少都会存在腰肌损伤肩周或颈椎问题,要想消除这些问题,在注意日常工作休息时间和通过锻炼提升身体素质之外,睡眠休息也是很好的方式之一。说到睡眠休息就要说
头条被移出创作者计划,该如何申诉?昨天突然收到了头条的系统通知你的账号因多次发布低质内容,已被移出创作者计划,如需了解详情或申诉,请点击链接。看到信息的时候我有点懵啊,我只知道头条对违规账号会进行扣除信用分惩罚,我
不信抄作业试试看,我家这几个厨房小物件简约不简单序大家好,11。11马上到了,作为年度绝佳购物节,我觉得非常有必要给大家分享一下我家里拥有的一些厨房物品,虽然这些物品并不是高精尖,但在日常生活中给我带来很多幸福的感觉,希望可以把
你的手机已经多久没有关过机了?随着网络的发展,移动支付的兴起。手机也越来越成为人们日常生活中最不可缺少的工具之一。地铁卡公交卡钱包等都被它取代了。我的手机是某耀手机,已经用了近三年了。一部千元机用了三年我觉得性
头条答题赢红包新手攻略答题赢红包是今日头条里通过回答问题来赢取现金红包的活动。参与方法在头条首页搜索答题赢红包就可以直接参与。活动内容每回答一道题会得到20积分,通过签到和每日任务也会得到积分。积分用来
大家的手机都有哪些赚钱软件?1。首推今日头条app,它有三个版本(1)今日头条(普通版),可以参加里面的答题赢红包活动,通过答题来抽取现金红包。(2)今日头条极速版,主要是刷金币赚钱,走路吃饭看视频都可以的金