在Tomcat7甚至更低版本中默认的BIO+同步Servlet的模式,一个请求,一个工作线程,CPU利用率低新版本中不在使用
APR+异步Servlet:APR(Apache Portable Runtime /Apache可移植运行库),是Apache Http服务器的支持库。JNI的形式调用Apache HTTP服务器的核心动态链接库来处理文件读取或网络传输操作,Tomcat默认监听指定路径,如果有APR安装则自动启用
运用最多的是NIO+异步servlet
Tomcat8以后,默认NIO方式非阻塞读取请求信息,非阻塞处理下一个请求,完全异步
NIO的处理流程如下
- 接收器接受套接字
- 接收器从缓存中检索niochannel对象
- Pollerthread将nioChannel注册到它的选择器IO事件
- 轮询器将nioChannel分配给一个work线程来处理请求
- SockertProcessor完成对请求的处理和返回