一、tomcat架构图、组件介绍
1、架构图
上述组件都可以在server.xml中配置
<Server>
<Service>
<Connector />
<Connector />
<Engine>
<Host>
<Context />
</Host>
</Engine>
</Service>
</Server>
2、组件模块介绍

(1)Connector
Connector接收连接请求,创建Request和Response对象用于和请求端交换数据;然后分配线程让Engine来处理这个请求,并把产生的Request和Response对象传给Engine。
一般server.xml默认配置、其中可以设置协议
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
**HTTP/1.1代表bio,nio可以手动设置类的全限定名 org.apache.coyote.http11.Http11NioProtocol,AJP连接器可以通过AJP协议和另一个web容器进行交互**

(2)容器
Engine、Host、Context、Wrapper(其实就是存放Servlet)
Engine
表示整个Catalina的Servlet引擎,用来管理多个虚拟站点,一个Service最多只能有一个Engine, 但是一个引擎可包含多个Host
Host
代表一个虚拟主机,或者说一个站点,可以给Tomcat配置多个虚拟主机地址,而一个虚拟主机下可包含多个Context
Context
表示一个Web应用程序, 一个Web应用可包含多个Wrapper
Wrapper
表示一个Servlet,Wrapper 作为容器中的最底层,不能包含子容器
二、tomcat启动流程、处理请求过程、热加载流程等
(1)tomcat启动流程时序图

(2)tomcat接受请求过程、处理请求过程
tomcat正常接受到请求Connector层会把tcp数据解析成封装到org.apache.coyote.Request req然后交给容器Container进行处理,大致流程如下

tomcat处理请求详细过程(以tomcat7 nio为列)

下面通tomcat处理bio

(3)tomcat热加载时序图

本文详细介绍了Tomcat的架构图及各组件作用,包括Connector、Engine、Host、Context和Wrapper。Connector负责接收和处理请求,Engine管理多个虚拟主机,Host对应虚拟站点,Context代表Web应用,Wrapper则封装Servlet。此外,还概述了Tomcat的启动流程、请求处理过程以及热加载机制。重点讨论了HTTP/1.1和AJP协议在Connector中的应用。

2632

被折叠的 条评论
为什么被折叠?



