1.写在前面
在上一篇文章中,我们分享了服务端调优-tomcat方向的调优。
分享了,如何对内嵌tomcat的配置进行调优等内容。
具体的详情可以查看: # 服务端优化-Tomcat调优
那我们还可以从哪些方面进行调优呢?
我们这里还可以从以下这几个方面进行调优:
- Web连接性能调优
- 网络IO模型调优
- Web容器调优
那就废话不多说了,直接上正菜吧:
2.Web连接性能调优
2.1什么是长连接?
HTTP 持久连接(Keep-Alive)也叫做长连接,它是一种 TCP 的连接方式,连接会被浏览器和服务器所缓存,在下次连接同一服务器时,缓存的连接被重新使用。
由于 HTTP 是无状态的,“一次性”通信模式。所以持久连接,可以减少创建连接的开销,提高性能!
长连接是服务端与客户端协作的技术:浏览器在请求的头部添加 Connection:Keep-Alive,以此告诉服务器“我支持长连接,你支持的话就和我建立长连接吧”,而倘若服务器的确支持长连接,那么就在响应头部添加“Connection:Keep-Alive”,从而告诉浏览器“我的确也支持,那我们建立长连接吧”。
服务器还可以通过 Keep-Alive:timeout=10, max=100 的头部告诉浏览器“我希望 10 秒算超时时间,最长不能超过 100 秒”。HTTP/1.1 支持长连接,大部分浏览器和服务器也提供了长连接的支持。
可以想象,要想发起长连接,服务器和浏览器必须共同合作才可以。一方面浏览器要保持连接,另一方面服务器也不会断开连接。也就是说要想建立长连接,服务器和浏览器需要进行协商,而如何协商就要靠伟大的 HTTP 协议了。
在 Tomcat 里允许配置 Connector 【Acceptor】节点,也就是配置长连接。与长连接直接相关的有两个属性分别是:
- keepAliveTimeout: 表示在下次请求过来之前,tomcat保持该连接多久 ,默认值20s
- 假如客户端不断有请求过来,且为超过过期时间,