由浅入深了解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中的切面,可做拦截、日志、限流等操作,可放在任意组件下。

相关文章

一 、安装solr 环境说明:centos 7.3,solr 6.6,zookeeper3...
tomcat 日志说明 配置文件server.xml 默认日志格式为 推荐使...
在实际生产环境中,tomcat的 catalina.out日志默认是不切割的...
简介: SSL 协议的3个特性: 保密:通过SSL链接传输的数据是...
遵循Java Servlet 规范第4节中的建议 ,Apache Tomcat实现了...