整体结构

image.png

主要组件

  • Server组件:定级组件,代表Tomcat的运行实例,可包含多个Service
  • Service组件:服务的抽象,代表请求从接收到处理的所有组件的集合

    • Connector(核心):负责对外交流,接收客户端连接并接收消息报文,消息报文经由它解析后送往容器进行处理
    • Container(核心):负责内部处理,加载和管理Servlet ,以及具体Request请求

      Connector

      connector主要负责接收客户端连接和客户端请求的加工处理
      image.png
      Protocol
      通信协议的抽象,将不同通信协议的处理进行了封装
  • EndPoint

接收端的抽象,封装了不同的IO模式(BIO、NIO),实现了TCP/IP协议

  • Acceptor

监听请求,专门用于接收客户端连接的接收器组件

  • Executor

处理客户端请求的线程池,Connector可以使用Service组件的共享线程池,也可以使用自己私有的线程池

  • Processor

客户端请求处理器,不同协议不同IO模型对应不同的Processor,实现了HTTP协议

Mapper

路由器组件,负责客户端请求的URL映射功能,通过Mapper组件将请求转发到对应的Host组件、Context组件、Wapper组件以进行处理并响应客户端

CoyoteAdaptor

适配器组件,Connector和Engine之间的适配桥梁

Container

Container用于封装和管理Servlet,以及具体处理Request请求,在Connector内部包含了4个子容器,结构图如下
image.png

Engine

管理多个站点,一个Service最多只能有一个Engine,一个Engine可以管理多个Host

Host

代表一个虚拟主机(站点),可配置多个虚拟主机,虚拟主机下可包含多个Context

Context

表示一个Web应用程序,可包含多个Wrapper

Wrapper

表示一个Servlet