Tomcat支持的四种线程模型

作者: Ian | 2018-10-27 | 阅读
名称 描述
BIO 阻塞式IO,采用传统的java IO进行操作,该模式下每个请求都会创建一个线程,适用于并发量小的场景
NIO 同步非阻塞,比传统BIO能更好的支持大并发,tomcat 8.0 后默认采用该模式
APR tomcat 以JNI形式调用http服务器的核心动态链接库来处理文件读取或网络传输操作,需要编译安装APR库
AIO 异步非阻塞,tomcat8.0后支持
配置方法:在tomcat conf 下找到server.xml

在<Connector port="8080" protocol="HTTP/1.1"/>

BIO:  protocol =" org.apache.coyote.http11.Http11Protocol"

NIO: protocol ="org.apache.coyote.http11.Http11NioProtocol"

AIO: protocol ="org.apache.coyote.http11.Http11Nio2Protocol"

APR: protocol ="org.apache.coyote.http11.Http11AprProtocol"

BIO线程模型:

  1. Http11Protocol组件,是HTTP协议1.1 版本的抽象,它包含客户端连接、接收客户端消息报文、报文解析处理、对客户端响应等整个过程。它主要包含JIoEndpoint组件和Http11Processor,启动时,JIoEndpoint组件内部的Acceptor组件将启动某个端口的监听,一个请求到来后将被扔进线程池Executor,线程池进行任务处理处理,处理过程中将通过Http11Processor组件对HTTP协议解析并传递到Engine容器继续处理。

  2. Mapper组件,可以通过请求地址找到对应的servlet

  3. CoyoteAdapter组件,将一个Connect和Container适配起来的适配器。

JIoEndpoint组件

NIO线程模型:


版权声明:本文由 Ian 在 2018年10月27日发表。本文采用CC BY-NC-SA 4.0许可协议,非商业转载请注明出处,不得用于商业目的。
文章题目及链接:《Tomcat支持的四种线程模型》




  相关文章:


留言区:

TOP