Tomcat server.xml中配置的connectionTimeout参数无效?客户端等待超时时间
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Tomcat server.xml中配置的connectionTimeout参数无效?客户端等待超时时间,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1739字,纯文字阅读大概需要3分钟。
内容图文
【转】https://segmentfault.com/q/1010000011412748
在tomcat的配置文件server.xml中,可以设置Connector的参数,其中包含超时参数connectionTimeout。
apache官网对于这些参数的解释:https://tomcat.apache.org/tom...
本人对其中几个重要参数大致理解为(应该理解错了):
- connectionTimeout:一个请求最多等待时间,超过则报错。
- maxConnections:最多同时连接数,连接上不一定处理。超过连接数,则排队。
- maxThreads:同时处理的线程数,经测试,理解无误。
- acceptCount:等待队列长度,当超越maxConnections时,会进入等待队列。等待队列满之后,直接拒绝请求。
对这些参数进行测试,然而遇到了疑惑。
第一组测试
设置:
connectionTimeout为10000,
maxConnections为2,
maxThreads为2,
acceptCount为2。
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="10000" redirectPort="8443" maxConnections="2" maxThreads="2" acceptCount="2"/>
写一个controller测试,sleep30s。
@RequestMapping(value = "sync") @ResponseBody public String sync() throws InterruptedException { Thread.sleep(30000L); return "test success"; }
使用JMeter进行测试。
测试结果,尝试三次都一致,如下:
一共20次请求,失败14个。
前两个请求,的确是在30s之后返回。
失败的14个请求,都在52s左右。
最后四个成功的请求,前两个在60s时返回,后两个在90s时返回。符合sleep30s的时间点。
分析:
- 同时生成20次请求。
- maxConnections=2,有两个请求被连接上,acceptCount=2,有两个请求进行排队。
- 其余16个请求,应该在某处也“排着队”吧,就称为野生请求。
- maxThreads=2,两个请求同时处理,30s后,这两个请求处理完毕。
- 排队的两个请求连接,两个野生请求进入队列。
- 莫名其妙地在52s时,进行了一波等待超时判断,14个野生请求全部失败。
- 已经连接和在排队中的请求后续会成功处理。
疑问:
- 52s来自何处,设置的connectionTimeout是10s呢。
第二组测试
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="10000" redirectPort="8443" maxConnections="10" maxThreads="2" acceptCount="5"/>
其中设置:
connectionTimeout为10000,
maxConnections为10,
maxThreads为2,
acceptCount为5。
仍发起20次请求,共失败5次
失败的4次请求,仍然是在52s左右失败。
之后的请求返回时间符合每30s返回两个的预期。
分析:
- 连接10个,等待5个,每次处理2个。
- 30s后,2个请求成功返回,连接数变成8个,按照第一组的分析,会有2个等待请求顶上去。那么,最终失败的请求应该是3个,然而结果是5个。
- 猜测需要等到连接的请求全部完成后或完成一部分之后,等待请求才会顶上去,野生请求只能干等。
疑问:
- connectionTimeout参数作用是?52s何处来?
-
其他几个参数理解是否正确?
原文:https://www.cnblogs.com/achengmu/p/13042065.html
内容总结
以上是互联网集市为您收集整理的Tomcat server.xml中配置的connectionTimeout参数无效?客户端等待超时时间全部内容,希望文章能够帮你解决Tomcat server.xml中配置的connectionTimeout参数无效?客户端等待超时时间所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。