发版就掉请求?Spring Boot优雅停机的四步
本文是《MCP实战手记系列十MCP Server高可用实战》的延伸知识点。完整的高可用方案多实例、负载均衡、熔断降级、Redis哨兵见系列十。多实例部署完之后很多团队以为高可用就做完了。但生产里绝大多数实例下线是运维主动发起的发版重启。而事故恢复那套Nginx把死实例摘掉管不了这个场景进程是被主动kill的Nginx要等请求失败攒够max_fails才知道那批请求已经变成502了。也就是说如果只做故障恢复不做优雅停机这覆盖的只是那10%的场景每次发版都会稳定地甩给用户一批错误。四步流程摘流量 → 等请求排空 → 停进程 → 部署新版本 → 健康检查通过 → 加回流量第一步应用侧开优雅停机。Spring Boot两行配置server:shutdown:graceful# 停止接收新请求等存量请求处理完再退出spring:lifecycle:timeout-per-shutdown-phase:30s# 最多等30秒超时强杀开了之后Tomcat先停止接受新连接把在途请求处理完才退出。第二步Nginx侧摘流量。最省事的是把该实例在upstream里标成downupstream mcp_backend { server 10.0.0.12:8088 down; # 摘掉准备发版 ... }改完nginx -t验一下语法再reload——reload不是重启但不代表可以跳过校验。第三步等排空。等的时间按最长超时给一般30秒够。第四步滚动发布。多实例就是这套流程对每个实例轮流做一遍一次只动一个保证其他实例一直在接客。三个坑坑一等待时间必须大于最长工具超时。这条最容易忽略。配了timeout-per-shutdown-phase: 30s但有个下游调用的超时也是30秒——真有请求卡满30秒时停机等待同时到期直接强杀优雅停机等于没开。要么把下游超时压下去要么把等待时间加长两者不能相等。坑二健康检查会拖长停机。应用已经进入shutdown流程了但/actuator/health可能还返回UP取决于停机阶段Nginx还会往里发请求。Spring Boot的readiness探针在停机时会转为DOWNK8s环境下这一步是自动的裸机 Nginx的就得靠主动标down。坑三无状态HTTP模式和SSE长连接模式不是一回事。本文这套在无状态HTTP模式下很干净没有长连接要drain。如果是SSE长连接还得处理存量长连接怎么迁移、客户端重连会不会形成风暴——那是另一个问题本文不覆盖。小结优雅停机不是高级功能是发布流程的基本配置。四步里最容易漏的是第一步应用侧配置和第一、二步之间的配合——只开应用侧配置、不摘流量Nginx照样在停机窗口里往里发请求。同专题推荐本文是「MCP Server高可用」小专题的第2篇共5篇Nginx开源版没有主动探活四种补救方案和一个能用的脚本发版就掉请求Spring Boot优雅停机的四步← 当前这篇超时不是一个数字是一套体系MCP Server的五条约束待发高可用配完之后该看哪几个指标池子该设多大待发缓存穿透、击穿、雪崩三个概念三种解法待发相关阅读《MCP实战手记系列十MCP Server高可用实战》本文延伸自该篇《MCP实战手记系列八无状态之后的生产落地清单》配套代码https://gitee.com/ethanliang2016/mcp-in-actiontagv10

相关新闻

Ray Serve 前缀缓存亲和调度实战:将大模型多轮对话首字延迟砍半

Ray Serve 前缀缓存亲和调度实战:将大模型多轮对话首字延迟砍半

在当今生成式 AI 的商业化应用中,大模型多轮对话(Multi-Turn Dialogue)与复杂的自主智能体(Autonomous Agents)构成了最主流的在线交互形态。无论是客服机器人不断追加的上下文记录,还是企业级知识库问答中…

2026/10/11 6:34:20 阅读更多 →
用Schema.org标注让企业官网被大模型读懂:实操步骤

用Schema.org标注让企业官网被大模型读懂:实操步骤

2011 年,Google、微软、雅虎联合发起 Schema.org 项目,为网页提供一套机器可读的词汇表。十多年后,这套词汇表多了一类新读者:大模型。当客户在豆包、DeepSeek 里问"这家公司是做什么的、靠不靠谱"时,AI 对官…

2026/10/11 6:34:20 阅读更多 →
TinyGlade造景工具逆向拆解:程序化生成与实时交互实现思路

TinyGlade造景工具逆向拆解:程序化生成与实时交互实现思路

1. 从一款治愈系造景工具说起:为什么值得拆解它的实现思路第一次看到 TinyGlade 的演示画面时,我的反应和大多数人一样——这玩意儿也太舒服了。没有资源管理,没有战斗数值,没有任务清单,你只是在一块空地上拖拽鼠标&a…

2026/10/11 6:34:20 阅读更多 →

最新新闻

【单片机毕业设计】基于单片机的自行车骑行定位与运动数据监测装置设计 基于物联网的骑行速度里程与定位追踪监测系统设计(030205)

【单片机毕业设计】基于单片机的自行车骑行定位与运动数据监测装置设计 基于物联网的骑行速度里程与定位追踪监测系统设计(030205)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于嵌入式单片机,Java、小程序技术领域和毕业项目实战 ✌️…

2026/10/11 7:53:04 阅读更多 →
厦门Java后端面试复盘:分布式事务、库存扣减与订单状态机

厦门Java后端面试复盘:分布式事务、库存扣减与订单状态机

上周刚从厦门回来,一口气面了两家公司的Java后端岗位。趁记忆还热乎,把这次的面试总结整理出来。如果你也在看厦门的后端机会,或者正准备约面试,这篇复盘应该能给你一些参考。两家公司一家是跨境ERP自研,另一家做本地生…

2026/10/11 7:53:04 阅读更多 →
Flask实现企业员工人事工资管理系统前台:从登录到工资查询的完整实践

Flask实现企业员工人事工资管理系统前台:从登录到工资查询的完整实践

前阵子帮一家做内部管理系统的小公司搭了一个员工自助门户,跑起来之后身边好几个同事都问我说,你这套“前台”到底是怎么拆出来的,跟后台管理端混在一起会不会乱。借着这个机会,我把PythonFlask实现企业员工人事工资管理系统前台的…

2026/10/11 7:53:04 阅读更多 →
WOFOST与AquaCrop作物模型对比:机理、参数与应用选择

WOFOST与AquaCrop作物模型对比:机理、参数与应用选择

做作物模型的人,迟早会在某个项目里同时撞见WOFOST和AquaCrop这两个名字。一个来自欧洲,一个出自联合国粮农组织,都是全球应用最广的作物生长模型,但如果你只把它们当作“模拟产量的工具”来用,那从一开始就搞错了方向…

2026/10/11 7:53:04 阅读更多 →
VLX-Seek实时视觉理解模型:架构设计与工程优化实战

VLX-Seek实时视觉理解模型:架构设计与工程优化实战

1. 从标题拆解 VLX-Seek 的真实定位1.1 这个标题到底在说什么第一次看到“VLX-Seek 实时视觉理解模型”这个标题,我脑子里跳出来的第一个判断是:这不是一个单纯的图像分类模型,也不是一个只做目标检测的模型,而是一个把“看”和“…

2026/10/11 7:53:04 阅读更多 →
告别语义漂移:用 BM25 与向量检索打造个人日记的混合召回(Hybrid Search)

告别语义漂移:用 BM25 与向量检索打造个人日记的混合召回(Hybrid Search)

秋雨淅淅沥沥下了一整天,空气里泛着潮湿的泥土香气。我坐在书房里,试图从这几年积攒的上千篇日记与手账随笔中,找出一年前在某家咖啡馆尝过的“桂花乌龙生椰拿铁”。 我在私有 RAG 助手里键入了这几个字,屏幕很快吐出了一堆相关记…

2026/10/11 7:52:03 阅读更多 →

日新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 5:23:50 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 21:32:20 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 10:38:42 阅读更多 →