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

大模型流式长链接场景下 k8s 优雅退出 JAVA

一、 java bootstrap.yml  

bootstrap.yml 启动文件增加timeout-per-shutdown-phase 

spring:lifecycle:timeout-per-shutdown-phase: 30m# 这个值是故意设置这么大的,因为现在推理服务支持深度思考# 为了保证用户侧的连接不被断开,因此我们需要设置超大 graceful shutdown 时间# 注意: 为了保证这个值是有效的,需要确保 k8s 中的 terminationGracePeriod 不低于此时间# 否则 k8s 会强制杀死 pod(这个值相当于不生效)# 上线前需要检查 nacos 中是否有这个配置,防止配置被覆盖

timeout-per-shutdown-phase: 

服务主进程优雅退出的时间 默认30s,配置该参数后可以实现如果当前还有未断开的链接那么主进程会在给定的时间后强制退出。

应用场景下:

当程序收到 kill -15的信号java默认timeout-per-shutdown-phase的参数为30s 也就说等待30s后pod内的进程就会自动退出(kill -9)之后就会与上游的服务断开链接,如果上游的服务有复用链接的特性那么会更为明显。届时客户端就会接受到503(服务暂时不可用)的http状态码。

二、k8s yaml 增加配置

        lifecycle:preStop:exec:command:- sh- -c- sleep 70terminationGracePeriodSeconds: 1800

 配置解释:

preStop:

必须配置,否则每次发布k8s的pod进入到Terminating状态后,会立刻删除pod网络相关的配置例如Pod Ip 、路由等

应用场景下: 

配置preStop后pod会进入到Terminating状态同时会从endpointSlice上摘除这个节点,也就意味着该节点不会接收新的流量,但是pod的IP以及网络配置还是存在的因为pod没有进入到回收的阶段还在sleep, 通过preStop钩子 进入到sleep阶段 这个时候就会将已经进入到该pod的请求继续进行处理,不会强制中断和上游的链接


terminationGracePeriodSeconds:

给定pod最大回收的时间,我这里配置了1800s,pod一旦超过了30分钟即使还有未中断的链接(没有处理完的请求) 都会强制被回收。

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

相关文章:

  • 永磁同步电机无速度算法--直流误差抑制自适应二阶反推观测器
  • 公路坑槽检测分析原理和思路
  • Java——数组及Java某些方法、二维数组
  • #C语言——刷题攻略:牛客编程入门训练(一):简单输出、基本类型
  • C++游戏开发(2)
  • 一次性接收大量上传图片,后端优化方式
  • 代码随想录算法训练营第五十七天|图论part7
  • Qt 消息弹窗 Toast
  • 两款免费数据恢复软件介绍,Win/Mac均可用
  • python后端之DRF框架(下篇)
  • 《零基础入门AI:传统机器学习核心算法(决策树、随机森林与线性回归)》
  • wxPython 实践(五)高级控件
  • 【ad-hoc构造】P10033 「Cfz Round 3」Sum of Permutation|普及+
  • vscode插件开发(腾讯混元)
  • Go再进阶:结构体、接口与面向对象编程
  • Cesium 快速入门(三)Viewer:三维场景的“外壳”
  • 基于深度学习的医学图像分析:使用BERT实现医学文本分类
  • 零信任网络概念及在网络安全中的应用
  • 【数据库】MySQL 详细安装与基础使用教程(8版本下载及安装)
  • RWA+AI算力賦能全球醫療数字產業升級高峰論壇——暨BitHive BTT 全球發佈會
  • C++面试5题--6day
  • wpf之ContentPresenter
  • PyTorch深度学习快速入门学习总结(三)
  • 【机器学习篇】01day.python机器学习篇Scikit-learn入门
  • 机器学习①【机器学习的定义以及核心思想、数据集:机器学习的“燃料”(组成和获取)】
  • 运行图生视频/文生视频(Wan2.X等)的显卡配置总结
  • 基于deepseek的文本解析 - 超长文本的md结构化
  • CNN卷积神经网络之LeNet和AlexNet经典网络模型(三)
  • 深入解析LLM层归一化:稳定训练的关键
  • 模型优化——在MacOS 上使用 Python 脚本批量大幅度精简 GLB 模型(通过 Blender 处理)