`
liuhaixiao
  • 浏览: 143449 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Keep-Alive简介及在Tomcat中配置

 
阅读更多

Keep-Alive简介及在Tomcat中配置

引用:http://www.someabcd.com/simple/?t3759.html 

 

Keep-Alive功能使客户端到服务器端的连接持续有效,当出现对服务器的后继请求时,Keep-Alive功能避免了建立或者重新建立连接。市场上 的大部分Web服务器,包括iPlanet、IIS和Apache,都支持HTTP Keep-Alive。对于提供静态内容的网站来说,这个功能通常很有用。但是,对于负担较重的网站来说,这里存在另外一个问题:虽然为客户保留打开的连 接有一定的好处,但它同样影响了性能,因为在处理暂停期间,本来可以释放的资源仍旧被占用。当Web服务器和应用服务器在同一台机器上运行时,Keep-Alive功能对资源利用的影响尤其突出。 此功能为HTTP 1.1预设的功能,HTTP 1.0加上Keep-Alive header也可以提供HTTP的持续作用功能。
Keep-Alive: timeout=5, max=100
timeout:过期时间5秒(对应httpd.conf里的参数是:KeepAliveTimeout),max是最多一百次请求,强制断掉连接
就是在timeout时间内又有新的连接过来,同时max会自动减1,直到为0,强制断掉。
Tomcat中的相关设置,在server.xml 中的Connector 元素中。
keepAliveTimeout:
此时间过后连接就close了,单位是milliseconds 
maxKeepAliveRequests:

最大长连接个数(1表示禁用,-1表示不限制个数,默认100个。一般设置在100~200之间).


maxKeepAliveRequests="1"就可以避免tomcat产生大量的TIME_WAIT连接,从而从一定程度上避免tomcat假死。

 
 测试部分,是我自己总结的。
可以采用apache 的 httpClient 库来测试。思路是 把httpClient httpGet 存放到静态变量里面,在主进程中启动三个线程,间隔30秒,用静态的httpClient httpGet 向tomcat服务器get数据.用netstat 查看网络连接情况,发现三次请求是一连接。
具体代码:
后继贴出。
 
 
 
标签: http长连接
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics