Apache Tomcat 将使用非阻塞 http 协议关闭文件下载连接
Apache Tomcat will close connection on file download with non blocking http protocol
默认情况下,server.xml 中的协议配置为 protocol="HTTP/1.1"。
对于较新的 tomcat 版本,这将尽可能使用非阻塞协议。
问题:
使用默认设置设置 Tomcat (8.0.28)。
在网络应用程序中复制文件,例如webapps/root 并以有限速度下载文件以模拟慢速调制解调器下载。
wget http://xxx.xxx.xxx.xxx:8080/xxxxxxx/7.zip --limit-rate=1k
连接总是在 6 分 24 秒后关闭
Saving to: ‘7.zip’
7.zip 0%[ ] 767.99K 1.00KB/s in 6m 24s
2015-10-28 17:27:39 (1024 B/s) - Connection closed at byte 786426. Retrying.
如果我将协议更改为(阻塞):
protocol="org.apache.coyote.http11.Http11Protocol"
一切正常,下载完成速度较慢。
可能是什么问题?
这是新的 Apache 协议的一个已知限制。
在低于 64kb/sec 的情况下稳定连接的唯一解决方案是更改设置:
socket.txBufSize(较小)
和连接超时(更高)。
有关更多详细信息,请检查:
https://bz.apache.org/bugzilla/show_bug.cgi?id=58565
默认情况下,server.xml 中的协议配置为 protocol="HTTP/1.1"。 对于较新的 tomcat 版本,这将尽可能使用非阻塞协议。
问题: 使用默认设置设置 Tomcat (8.0.28)。 在网络应用程序中复制文件,例如webapps/root 并以有限速度下载文件以模拟慢速调制解调器下载。
wget http://xxx.xxx.xxx.xxx:8080/xxxxxxx/7.zip --limit-rate=1k
连接总是在 6 分 24 秒后关闭
Saving to: ‘7.zip’
7.zip 0%[ ] 767.99K 1.00KB/s in 6m 24s
2015-10-28 17:27:39 (1024 B/s) - Connection closed at byte 786426. Retrying.
如果我将协议更改为(阻塞):
protocol="org.apache.coyote.http11.Http11Protocol"
一切正常,下载完成速度较慢。
可能是什么问题?
这是新的 Apache 协议的一个已知限制。
在低于 64kb/sec 的情况下稳定连接的唯一解决方案是更改设置: socket.txBufSize(较小) 和连接超时(更高)。 有关更多详细信息,请检查: https://bz.apache.org/bugzilla/show_bug.cgi?id=58565