由浅入深了解Tomcat架构
作者:互联网
前言
本文章通过b站up主鲁班大叔_007的教学视频学习,再根据自己的理解总结得出。若有错误的地方,还请各位大佬指出。
一、Tomcat核心组件
我们可以从一个地址中来了解tomcat的核心组件:
- ①连接器(Connector):由协议和端口构成。
- ②站点(Host):由域名构成。
- ③应用上下文(Context):由应用名构成
- ④资源:由资源名称构成(静态资源或动态资源)
二、核心组件协作过程
- ①浏览器首先根据端口号找到连接器,和连接器建立连接。
- ②连接器会根据域名找到对应站点。一个连接器可以访问多个站点,站点也可以被多个连接器访问。连接器和站点是多对多的关系。
- ③站点再根据应用上下文名称找到对应Context。一个站点可以访问多个应用,而一个应用不能被多个站点访问。站点和应用是一对多的关系。
- ④应用在访问对应的资源。应用和资源是一对多的关系。
三、server.xml对应核心组件配置
- Server:顶级组件,代表一个Tomcat实例。可以包含一个或多个Service。
- Service:服务分组,可以连接一个或多个连接器到引擎。name:名称(自定义) Catalina(远程轰炸机)。
- Engine:引擎,没有特殊作用,只是作为容器将Host包装起来 defaultHost:默认指定站点。
- Host:站点,name:域名 appBase:站点根目录 unpackWARs:是否自动解压war包 autoDeploy:是否自动部署。可以有多个站点。
- Context:应用上下文 path:访问的应用上下文名称 docBase:应用上下文包路径。
四、Tomcat请求流程
- 每一个组件都会有一个Pipeline结构,里面包含了n个Valve,若配置了一个Valve1,则加在最前面,若没有配置,则走默认的Pipeline流程。默认Pipeline流程如下图所示。
Valve在server.xml的配置
- Valve:阀门,相当于springboot中的切面,可做拦截、日志、限流等操作,可放在任意组件下。
标签:由浅入深,架构,应用,Tomcat,站点,连接器,组件,上下文 来源: https://blog.csdn.net/weixin_43723877/article/details/120182809