tomcat系统架构与原理分析

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

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

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值