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架构

tomcat

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架构

Container架构

Engine:引擎,用来管理多个站点,一个Service最多只能有一个Engine

host: 每个host代表一个虚拟主机

context: 每个context 代表一个应用

wrapper: 每个wrapper 代表一个servlet

4.container 如何处理请求

Container处理请求是使用Pipeline-Value管道来处理的

Container包含四个子容器,而这四个子容器对应的BaseValue分别在:StandardEngineValue、StandardHostValue、StandardContextValue、StandardWrapperValue