你们在用 spring cloud gateway 的时候有遇到 connection prematurely closed deforestation response 这个问题吗
一夕伊人醉 0 "Connection prematurely closed" 意味着客户端和服务器之间的连接已经意外地中断了。"Deforestation response" 是指客户端已经发送了一些数据,但服务器在处理请求时出现了问题,并在处理完部分请求后关闭了连接。 这个问题可能由多个因素引起,以下是一些可能的解决方法: 增加超时时间:尝试增加超时时间以使得 Spring Cloud Gateway 能够更长时间地等待来自服务器的响应。可以通过在 application.yml 或 application.properties 文件中设置以下属性进行配置:其中 response-timeout 属性可以根据需要进行更改。 禁用 HTTP Keep-Alive:如果服务器或客户端在请求处理过程中关闭了连接,则可以尝试禁用 HTTP Keep-Alive 功能。在 application.yml 或 application.properties 文件中设置以下属性: spring: cloud: gateway: httpclient: pool: max-connections-per-route: 10 max-connections-total: 50 validate-after-inactivity: 10000 tcp: keepalive: false 其中 tcp.keepalive 属性需要设置为 false。 检查服务器端的配置:这个问题可能是由于服务器端的配置不正确引起的。可以检查服务器端的配置文件,确保服务器端的配置是正确的。 升级 Spring Cloud Gateway 版本:如果您正在使用一个旧版本的 Spring Cloud Gateway,尝试升级到最新版本的 Spring Cloud Gateway。 检查服务器端日志:查看服务器端的日志,了解服务器端在请求处理过程中发生了什么问题。5个月前
蹲仔 0 官网参考https://github.com/reactor/reactor-netty/issues,有些异常可以在这个网站中搜索 该异常翻译后是说:reactor.net .http.client. prematurecloseexception:在响应之前连接过早关闭, 是由于Reactor-Netty导致的bug. 解决方案: 第1步、加入JVM参数:第2步、SCG新增配置: 第1步将获取连接策略由默认的FIFO变更为LIFO,因为LIFO能够确保获取的连接最大概率是最近刚被用过的,也就是热点连接始终是热点连接,而始终用不到的连接就可以被回收掉,LRU的思想。 第2步是设置空闲请求在空闲多久后会被回收,这样也就可以避免拿到旧连接刚好在请求途中被强行close了,这个时间的设置只要确保比你后端服务的connectTimeout小就行了,这样能够确保SCG回收请求在后端服务回收请求之前,就可以避免掉这个问题。 这样设置后还会偶发这个异常,请排查你的所有后端服务是否connectTimeout都比maxIdleTime大,或者尝试调整maxIdleTime。另外,本身这是个概率性偶发问题,如果你的架构是题主举的这个例子类似,题主这样设置后,几乎看不到这个异常出现了,彻底根除这个顽疾,请看懂时序图再提问题。另外,如果你的架构不太一样,你需要找到你的请求为什么在请求途中被突然关闭的原因,这可能不是Reactor-Netty的问题,而是你的服务的问题。 Reactor-Netty是在v0.9.5.RELEASE版本开始提供设置。6个月前
回答2
只看作者最新最热
-
- Java 8 简明教程
- 本教程将带领你一步一步地认识这门语言的新特性。通过简单明了的代码示例,你将会学习到如何使用默认接口方法,Lambda表达式,方法引用和重复注解。看完这篇教程后,你还将对最新推出的API有一定的了解,例如:流控制,函数式接口,map扩展和新的时间日期API等等。
-
- Java新特性解读
- 盘点Java8之后的各种新特性学习
-
- Spring Boot 1.x 入门教程
- Spring Boot 1.x版本入门教程,全网最早连载的的免费Spring Boot经典教程
-
- Spring Boot 2.x 入门教程
- Spring Boot 2.x版本入门教程,全网最早连载的的免费Spring Boot经典教程
-
- Spring Cloud教程
- 全网最早最全最持久的Spring Cloud教程,内容涵盖经典Netflix套件、Aliababa套件
-
- 开发者安装大全
- 该专栏主要创作、整理、汇总开发者常用的好用软件、编程环境、中间件等工具的安装,以指导开发者快速搭建自己的需要的开发环境。
-
- 玩转 IntelliJ IDEA
- 收录各种IDEA的使用技巧、实用插件