zoukankan      html  css  js  c++  java
  • 从Jetty、Tomcat和Mina中提炼NIO构架网络服务器的经典模式(二)

    本文转载自 http://blog.csdn.net/cutesource/article/details/6192145

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

    先看看Tomcat Connector这块的类图:

    其中:

    NioEndpoint负责组装各部件

    Acceptor负责监听新连接,并把连接交给Poller

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

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

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

    阶段一:监听并建立连接

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

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

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

    阶段三:处理请求

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

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


     

  • 相关阅读:
    python列表切片
    python注释行与段落
    PCL安装与配置
    自动驾驶相关
    (转)ping命令
    (转)linux应用之test命令详细解析
    (转)shell解析命令行的过程以及eval命令
    (转)ssh-keygen 中文手册
    (转)stty 命令说明及使用讲解
    (转)CentOS下的trap命令
  • 原文地址:https://www.cnblogs.com/chenying99/p/3151848.html
Copyright © 2011-2022 走看看