Tomcat Connector 的工作模式?

Tomcat 面试题发布于

一、三种运行模式

  • BIO:阻塞 IO,每个请求一个线程,Tomcat 7 前默认。
  • NIO:非阻塞 IO,基于 Java NIO,Tomcat 8 默认。
  • APR:基于 Apache Portable Runtime,原生 C 库,性能最好。

二、NIO 模式

  • 一个 Acceptor 线程接收连接。
  • 一个 Poller 线程轮询 Selector,检测就绪事件。
  • 线程池处理请求。
  • 少量线程处理大量连接,适合高并发。

三、配置

<Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"
           maxThreads="200" minSpareThreads="20" acceptCount="100"/>

四、优化

  • 调整 maxThreads(最大线程数)。
  • 调整 acceptCount(等待队列)。
  • 启用压缩 compression。
  • 调整连接超时 connectionTimeout。