Spring Boot HTTP/2 服务器 GOAWAY 超时配置详解
一款功能相当强大的录音及音频编辑软件,不仅可以编辑音频,而且还可以录音,功能丰富,操作简单,使用方便,实用性强,并且占用电脑内存小,运行速度快,不卡顿电脑,使电脑系统保持良好的运行状态。支持许多格式的音频文件,包括WAV、OGG、VOC、IFF、AIFF、
SpringBoot默认Tomcat在HTTP/2连接空闲20秒后发送GOAWAY帧关闭连接,这是由keepAliveTimeout参数控制。可通过配置server.tomcat.keepAliveTimeout调整,设为-1可禁用超时实现长连接,但需注意服务器资源消耗。该参数仅影响连接层空闲超时,不涉及请求处理或SSL超时。若使用Jetty等其他容器,配置
Spring Boot HTTP/2 服务器 GOAWAY 超时配置详解

在基于 Spring Boot 构建的 HTTP/2 服务时,不少开发者都遇到过这样一个现象:连接在空闲了大约20秒后,就被服务端主动切断了。客户端通常会收到一个 GOAWAY 帧(错误码可能是 NO_ERROR 或 ENHANCE_YOUR_CM),然后连接就关闭了。这其实不是 Spring Boot 自己搞的什么特殊逻辑,而是它底层默认使用的嵌入式 Tomcat(版本 v10.1.7 及以上)对 HTTP/2 连接生命周期的一套默认管理策略。
问题的根源,就出在 Tomcat 的一个参数上:keepAliveTimeout。这个参数大家可能不陌生,它通常用来控制 HTTP/1.1 的 Keep-Alive 超时时间。但关键点在于,在 HTTP/2 模式下,它同样扮演着“连接总空闲计时器”的角色。也就是说,从连接建立开始算起,如果超过这个时间没有任何数据帧交互,Tomcat 就会认为这个连接该结束了,于是发送 GOAWAY 帧。而这个参数的默认值,正好就是 20 秒。所以,触发 GOAWAY 完全是预期之中的行为,并非系统故障。
解决方案:调整 keepAliveTimeout
要改变这个行为,方法很直接,就是在 Spring Boot 的配置文件里调整这个参数。打开你的 application.properties 文件,加入以下配置之一:
# 方案一:彻底禁用连接空闲超时(连接将永久保持,直到客户端主动关闭或网络异常) server.tomcat.keepAliveTimeout=-1 # 方案二:设置为一个更长的、合理的值(例如5分钟,单位是毫秒) # server.tomcat.keepAliveTimeout=300000
当然,调整配置的同时,有几个细节必须得留意:
- 关于“-1”:设置为 -1 意味着禁用超时机制,连接会一直挂着。这在生产环境需要格外小心,得评估好服务器资源(如最大连接数、内存、文件描述符)是否扛得住。
- 分清层次:这个
keepAliveTimeout配置的是 Tomcat 连接层的空闲超时,它不影响应用层处理单个请求的超时(那是server.tomcat.connection-timeout管的事),也和 SSL 会话超时没有关系。 - 容器差异:如果你用的不是 Tomcat,而是 Jetty 或 Netty 等其他 Web 容器,那配置方式就完全不同了。比如在 Jetty 里,你需要通过
JettyServletWebServerFactory去设置HttpConfiguration.setIdleTimeout()。 - 协议前提:别忘了,要想让 HTTP/2 生效,TLS 配置必须正确无误(JDK 17+ 自带 ALPN 支持,且证书有效)。如果协议协商失败,连接会回退到 HTTP/1.1,那时
keepAliveTimeout的行为也会跟着变。
Spring Boot 默认 Tomcat 在 HTTP/2 连接建立 20 秒后主动发送 GOAWAY 帧,可通过 server.tomcat.keepAliveTimeout=-1 禁用该超时行为,实现长连接持久化。
说到底,服务端主动发送 GOAWAY 帧并不是什么坏事,它是 Tomcat 为了维护 HTTP/2 连接健康度的一种主动管理机制。通过合理配置 server.tomcat.keepAliveTimeout/actuator/metrics/http.server.requests 端点)和压力测试来验证效果,做到心中有数。
WPS Office是一款面向macOS用户的综合办公套件,将文字处理、电子表格、演示文稿、PDF工具、模板与云协作整合在同一应用中。它兼容常见Microsoft Office格式,支持Intel及Apple芯片Mac,基础功能可免费使用,
Shapr3D是一款面向工业设计、机械工程、建筑概念和三维打印工作流的CAD软件。Mac版采用Parasolid建模内核,支持草图约束、实体建模、工程图、可视化渲染及常见CAD格式交换,并可通过账户在多台设备之间同步项目。
REAPER是Cockos开发的数字音频工作站,提供多轨音频与MIDI录制、剪辑、处理、混音和母带制作工具。Mac版兼容Intel与Apple芯片,支持AU、VST、VST3、CLAP等插件格式,并提供高度可定制的工作流程。
Adobe Photoshop 是面向摄影师、设计师和内容创作者的专业图像处理工具,可在 Windows 上完成照片修饰、选区抠图、图层合成、文字排版、绘画及生成式编辑。软件采用订阅授权,由 Creative Cloud 管理安装、更新与许
Adobe InDesign 是面向印刷与数字出版的专业页面排版工具,可制作书籍、杂志、宣传册、海报、交互式 PDF 和电子书。它提供精细的文字样式、多页面管理、印前检查及多格式输出能力,并能与 Photoshop、Illustrator
Adobe Illustrator 是用于绘制矢量图形、插画、图标、徽标和版式的专业设计工具。它以路径和锚点为核心,作品放大后仍能保持清晰,并提供画板、文字、渐变、图像描摹及精确变换等功能,适合品牌视觉、印刷物料、数字界面和商业插画创作。













