Tomcat整体架构设计
作者|知视
本文主要介绍Tomcat的整体架构
说到Tomcat大家肯定不陌生,今天我们来聊聊Tomcat,聊聊Tomcat的架构设计。
Tomcat的架构设计,就像俄罗斯套娃一样,一层套一层。如图,就是tomcat整体架构图。
Tomcat架构设计图
Tomcat主要有两部分组成:连接器Connector和容器Container。
所谓连接器就是负责接收和解析请求,然后转发给容器。
容器代表的是一类组件,它有很多层。
其中最大的是引擎Engine,它代表一个Servlet引擎。它主要的功能是将传入的请求委托给适当的虚拟机Host处理。
引擎Engine的下一层是Host,它代表一个虚拟机。Tomcat自带一个localhost的虚拟机。虚拟机有两个重要的概念域名和根目录。 域名:每个虚拟主机是由它注册的域名来标识的 根目录:根目录所在的文件夹包含将被部署到此主机的上下文。根目录可以是一个绝对路径,也可以是对CATALINA_BASE 来说的一个相对路径
为了提供对多个域名的服务,通过配置Host就可以添加虚拟机。每个虚拟机Host下可以包含多个上下文Context。
虚拟机Host的下一层是上下文Context,一个Context代表一个Web应用,就是我们平常开发的一套Web应用程序。上下文是应用自定义代码(servlet、jsp)所存活的地方。
其实,在Context内部还有一层包装器Wrapper,包装器是context容器的子容器。一个Wrapper对应一个Servlet。在一个Web应用中会包含多个Servlet,来处理不同的请求。所以一个Context内部会有多个对应的包装器Wrapper。
为了很好地统一管理连接器和容器,Tomcat提供了另外两个组件:服务器Server和服务Service。
服务器Server代表完整的Tomcat实例,在Java虚拟机中它是一个单实例,主要是用来管理各个服务Service组件的生命周期的。服务器Server中可以有多个服务Service,每个服务Service都是相互独立的。
服务器Server是Tomcat中的顶级组件。可以这样说,它掌握着整个Tomcat的生死大权。
前面说到,Server代表Tomcat实例本身。那么,Service则代表具体的服务,负责对外提供服务。每个Service都是相互独立的,一个Service组件中可以有多个Connector和一个Engine,这样一来,对应的多个Connector的请求就只能由一个Engine处理。
那么,请求是如何到达Servlet的? 客户端的请求首先到达的是连接器Connector 连接器将请求封装成Request对象和Response对象,再将请求传递给容器 请求到达容器后,容器会按照上述组件的顺序,一层一层地对请求做相应的处理 最后请求会被传递给特定的Servlet
Tomcat结构图
河南一家5口4人被杀,凶手是夫妻,妻子被判12年引发争议最近一段时间,媒体报道了河南一家五口一年前惨遭灭门的消息,其中一家五口,有四人被杀,而凶手竟然是另一个家庭的夫妻俩。看到这个消息,很多网友都感到非常震惊有什么深仇大恨,非要闹得如此
60岁岳父灭了女婿一家三口,二审时死刑变死缓,啥仇这么大?今天我们要说的这个故事,发生在东三省的吉林一个60岁的老翁,竟然杀死了自己的女婿,以及女婿的父母,而女婿的父母也就是老翁的亲家,都是教师。而老翁的女婿只有33岁,正是人生的黄金年龄
苏黎世联邦理工学院研究通过12个小型无线电磁传感器追踪人体姿态(映维网2021年10月12日)苏黎世联邦理工学院的先进交互技术实验室(AdvancedInteractiveTechnologiesAIT)专注于而研究机器学习计算机视觉和人机交
比手机更靠谱的考生礼物?vivoTWS2成释放压力首选转瞬间已至年中六月,除了天气炎热外,这两天的高考氛围又为这炎炎夏日增添了一份热度。与很多家庭一样,我家里老妹也是今年的考生之一。回想起当年高考结束之后的我,仿佛心中还存有一丝惬意。
武新制冷天然气管网压力能回收及冷能综合利用项目初步调试成功余压余冷等新常规能源的回收利用,是实现碳达峰碳中和的解决方案之一。2021年7月,顶着火热的夏日骄阳,冰山集团武新制冷设计并投资承建的武汉市三金潭调压站天然气管网压力能回收及冷能综
音频剪辑无压力,分分钟教你搞定大家好,我是小编浩克,音频转换不会怎么办,相信很多小伙伴们都遇到过这种烦恼,迅捷音频转换器轻松好用,支持多种格式互换,还包括音频剪辑音频合并和音频提取功能分割方式多样功能丰富的软件
大数据机构培训班学习效果好吗?学习之路是如此的漫长,有的人总想着还是要多掌握一门技能,大数据一词又是最近比较火热的词条之一,一部分人想着学也是学,不如学一学这大数据技术,那么问题又来了,当选择去大数据培训机构培
大数据学习SparkRDD操作入门在Spark框架组件当中,核心部分不得不提到一个重要的概念,叫做RDD。而这个RDD,本身来说,也是Spark框架相比早期的HadoopMapReduce框架实现了性能提升的重要一
猪队友促震荡利布局上周判断本周金融三兄弟将换岗式护盘,但证券却故意制造震荡,造成大盘摇摇欲坠之感,从而利于主力布局明春行情。上周说银行和证券是本周主角,但证券却成了猪样的队友,打击小散一致看多的心理
大数据开发基础之SQL语句基本操作昨天我们把MySQL的基础知识大概说了一遍,所以接下来几篇文章我们都会细化的讲讲MySQL的一些内容,而今天就给大家带来大数据开发基础之SQL语句基本操作,在有了理论知识后也必须动
大数据开发zookeeper命令操作本期又是大家最喜欢的命令合集,今天给大家带来的是大数据开发zookeeper命令操作。作为大数据开发学习的基础,最基本的可不能落下,下面就开始zookeeper的命令操作的学习吧!