title: Tomcat静态架构
date: 2018-10-24 13:46:20
tags:
- tomcat
- 读书笔记
《Tomcat架构解析》读书笔记一
大体设计思路
接收客户端请求(Connector、线程管理Executor)-> 解析请求(ProtocolHandler、Processor)-> 处理请求(CoyoteAdapter适配器、Container容器)
ps. 在处理请求时涉及组件的生命周期管理,使用监听类与容器管理类( MapperListener与Mapper)进行管理
架构图
静态架构各模块解释
- Lifecycle:生命周期上层接口,实现此接口后各个组件可以解耦地控制子组件的生命周期
- server:表示一个Tomcat服务器,可以称之为Servlet容器
- service:server可以有多个service,表示多个相互独立、共享JVM以及系统类库的服务。维护多个Connector与Container,而Connector与Container是一一对应的关系
- Connector:Socket监听客户端请求、返回响应数据,主要考虑:监听端口、处理请求、按协议解析请求数据、按地址匹配Container进行处理、返回处理结果
- Container:容器上层接口,继承此接口的各个组件负责请求处理,tomcat有多级容器(Engine、Host、Context、Wrapper),采用责任链的方式处理请求(Pipeline与Valve),有时候可能只需要用到部分Container。
- Engine:Servlet引擎,负责请求的处理,对请求寻找合适的容器来处理
- Host:针对多个域名服务抽象出来的虚拟主机,每个虚拟主机底下包含多个Web应用(Context)。
- Context:用Context来表示一个Web应用
- Wrapper:表示Servlet实例
- MapperListener与Mapper:当Connector处理请求时,需要将请求映射到具体的容器进行处理(请求映射),除了考虑映射规则,这时候还要对Container进行生命周期的管理(组件的注册、初始化、销毁等等)
- CoyoteAdapter:适配器模式解耦,Connector与Container以及Mapper的沟通桥梁