TOMCAT结构分析

原文https://mp.weixin.qq.com/s/D-lmaFwJBsiWIPmFIcfJnQ

server

每个TOMCAT只有一个Server组件,用来负责tomcat的运行,每个server可以包含多个service

service

运行在server组件内,代表着每个应用程序的抽象,负责对外提供服务

每个service内部包含Connector和Container

  • Connector用于处理socket链接,对request和response进行转换,每个service拥有一个
  • Container负责对Servlet进行封装,每个service可以拥有多个

    Connector

  1. Endpoint用来处理底层Socket的网络连接,Processor用于将Endpoint接收到的Socket封装成Request,Adapter用于将Request交给Container进行具体的处理。
  2. Endpoint由于是处理底层的Socket网络连接,因此Endpoint是用来实现TCP/IP协议的,而Processor用来实现HTTP协议的,Adapter将请求适配到Servlet容器进行具体的处理。
  3. Endpoint的抽象实现AbstractEndpoint里面定义的Acceptor和AsyncTimeout两个内部类和一个Handler接口。Acceptor用于监听请求,AsyncTimeout用于检查异步Request的超时,Handler用于处理接收到的Socket,在内部调用Processor进行处理

    Container

  4. Engine:引擎,用来管理多个站点,一个Service最多只能有一个Engine;
  5. Host:代表一个站点,也可以叫虚拟主机,通过配置Host就可以添加站点;
  6. Context:代表一个应用程序,对应着平时开发的一套程序,或者一个WEB-INF目录以及下面的web.xml文件;
  7. Wrapper:每一Wrapper封装着一个Servlet;