配置 server.xml 文件当中的
- BIO protocol=“org.apache.coyote.http11.Http11Protocol“
该模式下每个请求都会创建一个线程,对性能开销大,不适合高并发场景。
- NIO protocol=”org.apache.coyote.http11.Http11NioProtocol“
该模式基于多路复用选择器监测连接状态在同步通知线程处理,从而达到非阻塞的目的。
- AIO protocol=”org.apache.coyote.http11.Http11Nio2Protocol“
异步非阻塞式IO,jdk1.7后之支持。与nio不同在于不需要多路复用选择器, 而是请求处理线程执行完程进行回调调知,已继续执行后续操作。
- APR protocol=”org.apache.coyote.http11.Http11AprProtocol“
全称是 Apache Portable Runtime/Apache可移植运行库),是Apache HTTP服务器的支持库。 可以简单地理解为,Tomcat将以JNI的形式调用Apache HTTP服务器的核心动态链接库来处理文件读取或网络传输操作。
NIO

| 名称 | 描述 |
|---|---|
| acceptCount | 等待最大队列 |
| acceptCount | 等待最大队列 |
| address | 绑定客户端特定地址,127.0.0.1 |
| bufferSize | 每个请求的缓冲区大小。bufferSize * maxThreads |
| compression | 是否启用文档压缩 |
| compressableMimeTypes | text/html,text/xml,text/plain |
| connectionTimeout | 客户发起链接 到 服务端接收为止,中间最大的等待时间 |
| connectionUploadTimeout | upload 情况下连接超时时间 |
| disableUploadTimeout | true 则使用connectionTimeout |
| enableLookups | 禁用DNS查询 true |
| keepAliveTimeout | 当长链接闲置 指定时间主动关闭 链接 ,前提是客户端请求头 带上这个 head”connection” “keep-alive” |
| maxKeepAliveRequests | 最大的 长连接数 |
| maxHttpHeaderSize | |
| maxSpareThreads | BIO 模式下 最多线闲置线程数 |
| maxThreads(执行线程) | 最大执行线程数 |
| minSpareThreads(初始线业务线程 10) | BIO 模式下 最小线闲置线程数 |