当前位置: 首页 > news >正文

【Springboot】Springboot如何优雅停机?K8S中Pod如何优雅停机?

什么是优雅停机:

就是对应用进程发送停止指令之后,执行的一系列保证应用正常关闭的操作。这些操作往往包括等待已有请求执行完成、关闭线程、关闭连接和释放资源等
就是对应用进程发送停止指令之后,能保证正在执行的业务操作不受影响,可以继续完成已有请求的处理,但是停止接受新请求
本质上是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的优雅关机 - 知乎

http://www.lryc.cn/news/169418.html

相关文章:

  • 伦敦银一手是多少?
  • Language Adaptive Weight Generation for Multi-task Visual Grounding 论文阅读笔记
  • 面试算法4:只出现一次的数字
  • #与##的用法
  • Flutter的路由router-页面跳转
  • 24v转5v稳压芯片-5A大电流输出ic
  • Layui + Flask | 表单元素(组件篇)(06)
  • Kakfa - Producer机制原理与调优
  • 基于图像形态学处理和边缘提取算法的路面裂痕检测matlab仿真
  • opencv 基础(持续更新中)
  • 科普现场!万博智云参加第五届张江汇智科普节
  • 【记录】实现从Linux下载下载文件(文件导出功能)并记录过程产生的BUG问题。
  • 可扩展性表设计方案
  • Scotch: Combining SGX and SMM to Monitor Cloud Resource Usage【TEE的应用】
  • 腾讯mini项目-【指标监控服务重构】2023-08-19
  • go实现grpc-快速开始
  • linux上的init 0-6指令作用以及一些快捷键和系统指令
  • Mixin 混入
  • pycharm快捷键
  • 【面试刷题】——Linux基础命令
  • 第四步 Vue2 配置ESLint
  • [.NET学习笔记] - Thread.Sleep与Task.Delay在生产中应用的性能测试
  • 【单线图的系统级微电网仿真】基于 PQ 的可再生能源和柴油发电机组微电网仿真(Simulink)
  • 人脸识别技术应用安全管理规定(试行)|企业采用人脸打卡方式,这4条规定值得关注
  • leetcode 817. 链表组件(java)
  • 分布式事务基础理论
  • 《打造高可用PostgreSQL:策略与工具》
  • 【八大经典排序算法】快速排序
  • vue 父组件给子组件传递一个函数,子组件调用父组件中的方法
  • docker 获取Nvidia 镜像 | cuda |cudnn