首页 > 解决方案 > Spring Boot 2 执行器在重负载下关闭连接

问题描述

我还没有一个有效的错误重现场景(正在处理它),但是在重负载(每秒略高于 200 个请求)下,弹簧执行器的健康端点偶尔会给出:

Error [reactor.netty.ReactorNetty$InternalNettyException: java.nio.channels.ClosedChannelException] for HTTP GET "/actuator/health", but ServerHttpResponse already committed (200 OK)

输出/日志中没有额外的堆栈跟踪或其他错误消息。

结果是在发送任何响应之前,与客户端的连接在服务器端关闭。在 Kubernetes 的 pod 中运行时,这会导致容器重新启动。当每个容器每隔(非常)几分钟发生一次时,这很烦人且浪费资源。

项目使用spring boot 2.2.2.RELEASE和spring cloud Hoxton.SR1,使用spring-webflux构建。

任何想法为什么?

标签: spring-bootspring-webfluxspring-boot-actuator

解决方案


推荐阅读