整体结构
主要组件
- Server组件:定级组件,代表Tomcat的运行实例,可包含多个Service
Service组件:服务的抽象,代表请求从接收到处理的所有组件的集合
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个子容器,结构图如下
Engine
管理多个站点,一个Service最多只能有一个Engine,一个Engine可以管理多个Host
Host
代表一个虚拟主机(站点),可配置多个虚拟主机,虚拟主机下可包含多个Context
Context
Wrapper
表示一个Servlet