前置知识
了解tomcat nio处理流程之前需要了解一下IO多路复用和Reactor模型。下图是主从Reactor多线程模型的设计图,mainReactor负责接收连接,subReactor负载读写数据,工作线程池负责编解码和计算,tomcat的架构模型和下图类似,但是有点区别。
Tomcat Nio网络模型
这个图中的名字和tomcat源码中的命名有些出入,比如subReactor在tomcat中叫做poller,这里使用subReactor主要是为了和Reactor模式关联起来方便理解。
处理流程图
注意,下图中的poller就是subReactor,executor就是线程池