当前位置: 首页 > 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.dtcms.com/a/308197.html

相关文章:

  • 用 MyBatis + MySQL 实现高效的批量 Upsert
  • 关于tresos Studio(EB)的MCAL配置之GtmCfg
  • 性能测试篇 :Jmeter监控服务器性能
  • Golang 语言的编程技巧之类型
  • 基础组件(六):网络缓冲区设计 和 定时器方案
  • TTS语音合成|GPT-SoVITS语音合成服务器部署,实现http访问
  • Vue3+Vite项目如何简单使用tsx
  • nl2sql grpo强化学习训练,加大数据量和轮数后,准确率没提升,反而下降了,如何调整
  • PostgreSQL dblink 与 Spring Boot @Transactional 的事务整合
  • Text2SQL 智能问答系统开发-预定义模板(二)
  • docker离线安装mysql镜像
  • 记录几个SystemVerilog的语法——覆盖率
  • 基于MATLAB的GUI来对不同的(彩色或灰色)图像进行图像增强
  • 【国内电子数据取证厂商龙信科技】内存取证
  • 法式基因音响品牌SK(SINGKING AUDIO)如何以硬核科技重塑专业音频版图
  • 防御保护第一次作业
  • AI Gateway 分析:OpenRouter vs Higress
  • python基础语法3,组合数据类型(简单易上手的python语法教学)(课后习题)
  • BFT平台:打造科研教育“最强机器人矩阵”
  • 自动驾驶控制算法——PID算法
  • 蓝桥杯----DS18B20温度传感器
  • vue3+arcgisAPI4示例:轨迹点模拟移动(附源码下载)
  • InfluxDB 与 Python 框架结合:Django 应用案例(二)
  • ASIC芯片简介
  • LangGraph认知篇-Send机制
  • TypeScript 基础介绍(二)
  • QT6 Python UI文件转换PY文件的方法
  • 如何为C#加入EPPlus 包
  • 【Flask基础②】 | 路由、响应与异常处理
  • 微服务快速集成 TraceId