tomcat架构
1.tomcat 架构 整体架构
(1)Tomcat中只有一个Server,一个Server可以有多个Service,一个Service可以有多个Connector和一个Container;
(2) Server掌管着整个Tomcat的生死大权;
(4)Service 是对外提供服务的;
(5)Connector用于接受请求并将请求封装成Request和Response来具体处理;
(6)Container用于封装和管理Servlet,以及具体处理request请求;
2.Connector架构
Connector就是使用ProtocolHandler来处理请求的,不同的ProtocolHandler代表不同的连接类型,比如:Http11Protocol使用的是普通Socket来连接的,Http11NioProtocol使用的是NioSocket来连接的
ProtocolHandler 包含三部分:EndPoint,Processor, Adapter
- EndPoint用于处理底层的socket的网络连接,封装成Request,Adapter用于将Requet 交给Container
- EndPoint 处理底层socket连接,因此实现TCP/IP协议,Processor 实现了 Http协议
- Endpoint的抽象实现AbstractEndpoint里面定义的Acceptor和AsyncTimeout两个内部类和一个Handler接口。Acceptor用于监听请求,AsyncTimeout用于检查异步Request的超时,Handler用于处理接收到的Socket,在内部调用Processor进行处理
3. Container架构
Engine:引擎,用来管理多个站点,一个Service最多只能有一个Engine
host: 每个host代表一个虚拟主机
context: 每个context 代表一个应用
wrapper: 每个wrapper 代表一个servlet
4.container 如何处理请求
Container处理请求是使用Pipeline-Value管道来处理的
Container包含四个子容器,而这四个子容器对应的BaseValue分别在:StandardEngineValue、StandardHostValue、StandardContextValue、StandardWrapperValue