tomcat网络处理线程模型-腾讯云开发者社区-腾讯云

虽然现在springboot微服务纵横都是用的jar包,但是还有很多使用的tomcat。tomcat是servlet的容器,也是springboot默认集成的容器,有必要对他的网络线程模型做一下了解。

(一) tomcat网络处理线程模型

一个请求,一个工作线程,CPU利用率低,tomcat7以下才使用这种,新版本不再使用,tomcat8默认NIO

apr(Apache Portable Runtime/Apache可以执行运行库),Apache Http服务器的支持库。JINI还是调用Apache Http服务器的核心动态链接库来处理文件读取或者网络传输操作,tomcat 默认监听指定路径,如果有apr安全,则自动启用。

tomcat8开始,默认NIO方式,非阻塞读取请求信息,非堵塞处理下一个请求,完全异步。

  1. Acceptor接收器接受套接字。
  2. 接收器从缓存中检索nioChannel对象。
  3. Pollerthread将nioChannel注册到它的选择器IO事件中。
  4. 轮询器将nioChannel分配给一个work线程来处理请求。
  5. SocketProcessor完成对请求的处理和返回客户端。