【Springboot】Springboot如何优雅停机?K8S中Pod如何优雅停机?
最佳答案 问答题库438位专家为你答疑解惑
什么是优雅停机:
就是对应用进程发送停止指令之后,执行的一系列保证应用正常关闭的操作。这些操作往往包括等待已有请求执行完成、关闭线程、关闭连接和释放资源等
就是对应用进程发送停止指令之后,能保证正在执行的业务操作不受影响,可以继续完成已有请求的处理,但是停止接受新请求
本质上是JVM即将关闭前执行的一些额外的处理代码
可以避免非正常关闭程序可能造成数据异常或丢失,应用异常等问题
优雅停机主要处理:
池化资源的释放:数据库连接池,HTTP 连接池,线程池
在处理线程的释放:已经被连接的HTTP请求
mq消费者的处理:正在处理的消息
隐形受影响的资源的处理:Zookeeper、Nacos实例下线等
未优雅停机:
当我们停止正在运行的应用程序或进程时,底层操作系统会向进程发送终止信号。在没有启用任何优雅关闭机制的情况下(如:kill -9),Spring Boot 应用程序将在收到信号后立即终止。
此时一些没有执行完的程序就会直接退出,可能导致业务逻辑执行失败,在一些业务场景下:会出现数据不一致的情况,事务逻辑不会回滚。
优雅停机使用场景:
一个基于springboot的服务,服务从网络接收请求,再把请求任务放入队列里交给线程池取异步消费请求任务。怎么样停止服务才能保证任务队列里的请求都处理完成了呢?
参考资料
Spring——项目优雅停机_springboot优雅停机_程序员小玖的博客-CSDN博客
SpringBoot 优雅停止服务的几种方法 - 第309篇_51CTO博客_springboot启动和停止服务
Kubernetes Pod的创建过程与删除过程_果果的技术博客_51CTO博客
https://www.cnblogs.com/cuishuai/p/14859182.html
Kubernetes:SpringBoot Pod的优雅关机 - 知乎
99%的人还看了
相似问题
猜你感兴趣
版权申明
本文"【Springboot】Springboot如何优雅停机?K8S中Pod如何优雅停机?":http://eshow365.cn/6-11202-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!
- 上一篇: 工作应当有挑战
- 下一篇: 学习Nano编辑器:入门指南、安装步骤、基本操作和高级功能