Tomcat的HTTP连接器
介绍
HTTP连接器元件代表一个 连接器支持HTTP / 1.1协议组件。除了能够执行servlet和JSP页面之外,它还使Catalina能够作为独立的Web服务器运行。此组件的特定实例侦听服务器上特定TCP端口号上的连接。可以将一个或多个此类连接器配置为单个服务的一部分,每个连接都转发到关联的引擎以执行请求处理并创建响应。
每个传入请求在该请求期间都需要一个线程。如果接收到的并发请求多于当前可用的请求处理线程可以处理的请求,则将创建其他线程,直到达到配置的最大值(maxThreads属性的值)。如果收到更多并发请求,它们将堆叠在由Connector创建的服务器套接字内,最多为配置的最大值(acceptCount 属性值)。任何进一步的同时请求将收到“连接被拒绝”错误,直到资源可用于处理它们。
IO模型
BIO:同步阻塞(一个连接一个线程)
NIO/NIO2 :同步非阻塞(一个线程处理多个请求,多路复用;比如在redis的处理连接的实现)
连接器比较
8.0

7.0

总结:通过以上的对比,NIO只在某些特定的环节中是不阻塞的,比如说处理请求头以及等待下一次请求的时候;因此个人觉得在某些场景下,如果只是调整连接器,那么性能不会有太大的变化。[具体的Tomcat优化的相关内容我会在后续的文章中更新]
结语
以上,个人的理解希望可以帮助大家能够更好的理解Tomcat的IO模型,以及在面试中可以更好的回答两者的区别。
网友评论