Tomcat架构学习

1、Tomcat的两个核心功能:

处理Socket连接,负责网络字节流与Request和Response对象的转化。

加载和管理Servlet,以及处理具体Request请求。

Tomct设计了两个核心组件连接器(Connector)和容器(Container)来分别做这两件事情。连接器负责对外交流,容器负责对内处理。

单独的连接器或者容器都不能对外提供服务,需要把他们组装起来才能工作,组装后这个整体叫做Service组件。

2、连接器需要完成3个功能:

网络通信。

应用层协议解析。

Tomcat Request/Response与Servlet Request/Response转换。

Tomcat分别提供了3个组件来完成对应功能,EndPoint、Processor、Adapter。

组件之间通过抽象接口交互。这样做的一个好处就是封装变化。

EndPoint负责提供字节流给Processor,Processor负责提供Tomcat Request给Adapter,Adapter负责提供Servlet Request给容器。

由于I/O模型和应用层协议可以自由组合,比如NIO+HTTP,NIO2+AJP。Tomcat将网络通信和引用层协议解析放在一起考虑,设计了ProtocolHandler接口封装这两种变化。

 连接器详细组件图:

3、容器

 Tomcat设计了4种容器,Engine、Host、Context、Wrapper,这4种容器是父子关系,关系图如下:

 Context 表示一个 Web 应用程序;Wrapper 表示一个 Servlet,一个 Web 应用程序中可能会有多个 Servlet;Host 代表的是一个虚拟主机,或者说一个站点,可以给 Tomcat 配置多个虚拟主机地址,而一个虚拟主机下可以部署多个 Web 应用程序;Engine 表示引擎,用来管理多个虚拟站点,一个 Service 最多只能有一个 Engine。

4、请求在Tomcat组件间的流转

 5、

 

posted @ 2023-09-08 10:36  高石柯南  阅读(8)  评论(0编辑  收藏  举报