tomcat系统架构与原理分析

一、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热加载时序图

在这里插入图片描述


版权声明:本文为qq_33590654原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。