Tomcat核心架构图(基于tomcat 9.x版本)
一 内部组件分层
1. Server: 对应于server.xml的server节点,只能有一个节点,管理多个service节点。 代表servlet容器,但是其内部并不属于容器结构,在tomcat内部,属于容器的只有engine,host, context和servelt(wrapper)四类。
2. Service:代表一个完整请求的处理服务,包含多个socket处理层(Connector)和一个请求处理层(Engine)。多个service可以同时嵌入在一个server内。Service在Tomcat内部也不代表容器。因此同Server一样不能嵌入Valve。
3. Connector:Http请求连接层。负责http底层socket请求的监听和解析,最终解析为完整的request信息发送给Engine进行业务处理。
4. Engine:是Service的请求处理引擎,它服务处理对应Service的一个或多个Connector的请求的处理。一个Service只能有一个Engine。它在Tomcat内部代表真正的容器,因此可以设置Valve。它内部管理一个或多个Host。
5. Host: 对应于Tomcat内部的虚拟主机。通过设置它