【发布时间】:2019-09-08 11:08:27
【问题描述】:
我制作了一个简单的 spring-boot 应用程序,它为所有请求返回一个静态 json 响应。
当应用收到带有大负载(~5mb json,1 TP)的请求时,客户端会收到以下错误:
java.net.SocketException: Broken pipe (Write failed)
at java.net.SocketOutputStream.socketWrite0(Native Method)
at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:111)
at java.net.SocketOutputStream.write(SocketOutputStream.java:155)
我已尝试增加所有可能的限制 - 这是我的 tomcat 设置:
spring.http.multipart.max-file-size=524288000
spring.http.multipart.max-request-size=524288000
spring.http.multipart.enabled=true
server.max-http-post-size=10000000
server.connection-timeout=30000
server.tomcat.max-connections=15000
server.tomcat.max-http-post-size=524288000
server.tomcat.accept-count=10000
server.tomcat.max-threads=200
server.tomcat.min-spare-threads=200
我能做些什么来让这个简单的弹簧启动只用一个控制器成功处理这样的有效负载?
这个 springboot 应用程序和发送大负载的客户端在具有 16gb 内存的 8 核机器上运行。所以资源应该不是问题。
【问题讨论】:
标签: apache spring-boot tomcat