Tomcat架构学习

发布时间 2023-09-08 10:44:13作者: 高石柯南

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、容器