zoukankan      html  css  js  c++  java
  • tomcat请求流程浅解

    tomcat的架构图大概是这样的规律,

    一个server有多个servcie,

    一个service分为conector、container、realm、logging、sesssion、jspaer等组件,

    connector分为http/ajp的connector,

    container有一个engine,

    一个engine有多个host,

    一个host有多个context,

    一个context有多个wrapper,

    host对应的就是虚拟服务,context对应的就是一个web应用,wrapper对应着一个servlet。

    接下来再看图,结构大概是这样子。

     其实在connector内部还有好多组件,比如 protocol 、endpoint 、acceptor等。读了源码之后梳理的大概逻辑如下,做个笔记,箭头指向是依赖调用链路。

     图可能不太清晰,附上plantuml源码。

    @startuml
    
    
    Client -> Connector
    Connector -> Http11Protocol
    Http11Protocol -> JioEndpoint
    JioEndpoint -> Acceptor
    Acceptor -> SocketProcessor
    SocketProcessor -> Http11ConnectionHandler
    Http11ConnectionHandler -> Http11Processor
    Http11Processor -> CoyoteAdaptor: 这开始处理Tomcat
    的request和response。
    CoyoteAdaptor -> PipeLine: pipeline通过链式处理把请求
    从connector发到container处理。
    PipeLine -> StandardEngine: 实际上是StandardEngineValue
    StandardEngine -> StandardHost: 实际上是StandardHostValue
    StandardHost -> StandardContext: 实际上是StandardContextValue
    StandardContext -> StandardWrapper: 实际上是StandardWrapperValue
    StandardWrapper -> Servlet: wrapper交给servlet处理请求
    @enduml
    原创博文,未经许可不得转载,转载请注明出处。
  • 相关阅读:
    1 外部JavaScript
    1 外部JavaScript
    蓝桥杯:位运算
    Java为什么要配置环境变量
    java数组静态复制和动态复制越界问题
    Dijkstra算法java实现
    离散二元关系实验java实现
    Java中字符串split() 的使用方法
    用java编程实现集合的交、并、差和补运算
    61根据字符出现频率排序(451)
  • 原文地址:https://www.cnblogs.com/Think-007/p/14408972.html
Copyright © 2011-2022 走看看