Tomcat 处理请求时,是需要 Connector 进行调度和控制的,Connector是Tomcat 处理请求的主干。
Connector 中有一个 accepf队列,当客户端向服务器发送http请求时,如果客户端与操作系统完成三次握手建立了连接,就将该连接放入accept队列,poller从队列中获取到链接后,从链接中获取请求,生成一个java request,然后从 tomcat 内部的线程池中找到空闲的线程去执行对应请求。
相关参数
acceptCount
accept 队列的长度;当 accept 队列中连接的个数达到 acceptCount 时,队列满,进来的请求一律被拒绝。默认值是 100。一般为100-200.
maxConnections
Tomcat在任意时刻接收和处理的最大连接数。当Tomcat接收的连接数达到maxConnections时,Acceptor不会读取 accept队列中的连接;这时accept队列中的线程会一直阻塞着,直到 Tomcat 接收的连接数小于 maxConnections。如果设置为-1,则连接数不受限制。默认值与连接器使用的协议有关:NIO 的默认值是 10000,APR/native的默认值是8192
maxThreads
内部线程池请求处理线程的最大数量。默认值是200(Tomcat7和8都是的)。maxThreads 规定的是最大的线程数目,maxThreads 的大小比 CPU 核心数量要大得多。这是因为,处理