从Jetty、Tomcat和Mina中提炼NIO构架网络服务器的经典模式(二)

下面再来看看Tomcat是如何使用NIO来构架Connector这块的。后端

先看看Tomcat Connector这块的类图:多线程

其中:线程

NioEndpoint负责组装各部件队列

Acceptor负责监听新链接,并把链接交给Pollerio

Poller负责监听所管辖的channel队列,并把请求交给SocketProcessor处理select

SocketProcessor负责数据处理,并把请求传递给后端业务处理模块sso

在整个服务端处理请求的过程能够分为三个阶段,时序图以下所示:请求

阶段一:监听并创建链接channel

这一阶段主要是Acceptor监听新链接,并轮询取一个Poller ,把链接交付给Pollerim

阶段二: 监听客户端的请求

这一过程主要是让每一个Poller监听所管辖的channel队列,select到新请求后交付给SocketProcessor处理

阶段三:处理请求

这一过程就是从多线程执行SocketProcessor,作数据和业务处理

因而乎咱们发现抛开具体代码细节,Tomcat和Jetty在NIO的使用方面是很是一致的,采用的模式依然是下图:

相关文章
相关标签/搜索