在上一篇文章里我们主要介绍了 tomcat NIO 的数据处理类,即实现读写封装的Request 和 Response,在这里我们主要介绍 NIO 整体架构。
对于 tomcat NIO 来说,是由一系列框架类和数据读写类来组成的,同时这些类运行在不同的线程中,共同维持整个 tomcat NIO 架构。包括原始 socket 监听的acceptor 线程,监测注册在原始 scoket 上的事件是否发生的 poller thread 事件线程,进行数据读写和运行 servlet API 的 tomcat io 线程。当数据需要多次读写的时候,监测注册在原始 scoket 上的读写事件的 block poller 事件线程。这些类和线程共同组成的 tomcat NIO 整体结构如下所示:
上面我们可以发现整体架构运行着4种线程:
Acceptor线程
Poller线程
Tomcat IO线程
BlockPoller线程
目前先写到这里,下一篇文章里我们继续介绍 tomcat NIO 中的 acceptor 线程。