【时快讯】tomcat虚拟主机的核心是什么?tomcat虚拟主机有什么用?
来源:环球周刊网 发布时间:2022-11-09 14:24:08

提起tomcat虚拟主机(tomcat虚拟主机有什么用)大家在熟悉不过了,被越来越多的人所熟知,那你知道tomcat虚拟主机(tomcat虚拟主机有什么用)吗?快和小编一起去了解一下吧!

tomcat虚拟主机(tomcat虚拟主机有什么用)


(相关资料图)

Tomcat组件

Server和Service

Tomcat中Server是最顶级的组件,它代表Tomcat的运行实例,一个JVM中只会包含一个Server。为了方便扩展,Server中引入了监听器Listener组件;为了方便集成JNDI,引入了GlobalNamingResources组件。Server中最重要的组件还是Service。

一个Server包括多个Service

在Tomcat中,Service组件是服务的抽象,一个Server中可以包含多个Service。Service组件负责从接收客户端请求到处理请求的整个过程,内部包含了若干接收客户端消息的 Connector 组件和一个处理请求的 Engine 组件。

此外,Service组件还包含了Executor组件,每一个Executor都是一个线程池,它可以为Service内其他组件提供执行任务的线程资源。

Connector

Tomcat的核心可以认为主要由连接器(Connector)组件和容器(Container)组件组成,其中Connector负责处理客户端连接,而Container则负责对请求进行逻辑处理,并把结果返回给客户端。

不同Connect对应不同的通信协议

Connector主要的职责就是接收客户端连接并接收消息报文,消息报文经由它解析后送往容器中处理。因为Tomcat支持不同的通信协议,例如HTTP协议、AJP(Apache JServ Protocol)协议等,所以需要不同的Connector组件,每种协议对应一个Connector组件。

另外不同类型的网络I/O,Connector组件的内部实现也不相同,可分为阻塞I/O和非阻塞I/O。以HTTP协议为例,看看阻塞I/O和非阻塞I/O的Connector内部实现有何不同。

BIO Connector

BIO Connector组件

阻塞I/O的Connector主要由三个组件组成:

Http11Protocol组件,是HTTP协议1.1版本的抽象,主要包含JIoEndpoint组件和Http11Processor组件。Tomcat启动时,JIoEndpoint内部的Acceptor开始监听某个端口,一个请求到来后将被扔进线程池Executor,由线程池进行任务处理。处理过程主要是通过Http11Processor组件对HTTP协议解析并传递到Engine容器。

Mapper组件,负责对客户端请求进行路由,即通过请求地址找到对应的Servlet。

CoyoteAdaptor组件,将Connector和Container适配起来的适配器。

NIO Connector

非阻塞I/O的Connector的结构类似BIO Connector,主要区别在于:

Http11Protocol组件改成Http11NioProtocol组件;JIoEndpoint组件改成NioEndpoint;Http11Processor组件改成Http11NioProcessor组件,功能基本类似。

增加了一个Poller组件,负责轮询多个客户端连接,不断检测各个连接是否有可读数据,如果有客户端可读,则尝试进行读取并解析消息报文。

Container

Tomcat内部有4个级别的容器,分别是Engine、Host、Context和Wrapper。Engine代表全局Servlet引擎,每个Service组件只能包含一个Engine容器组件,但Engine组件可以包含若干Host 容器组件。

Tomcat容器

Engine

除了Host以外,Engine容器还包括了Engine容器级别的Listener组件(监听器)、AccessLog组件(日志)、Cluster组件(集群功能)、Pipeline组件(请求处理管道)、Realm组件(用户权限)。

Host

Host组件代表虚拟主机的抽象,一个虚拟主机中可以存放若干Web应用的抽象,即一个Host可以包含多个Context容器。

和Engine类似,Host容器中也包含了Listener、AccessLog、Cluster、Pipeline、Realm这些组件,不过这些组件都是Host容器级别的。

Context

Context组件是Web应用的抽象,我们开发的Web应用部署到Tomcat后运行时就会生成一个Context对象。

Context包含了应用级别的Listener、AccessLog、Pipeline、Realm组件,还包括了Loader组件(加载web应用资源)、Manager组件(会话管理)、NamingResource住院(命名资源)、Mapper组件(Servlet映射器)和Wrapper容器。

Wrapper

Wrapper容器是Tomcat中4个级别的容器中最小的,与之相对应的是Servlet,一个Wrapper对应一个Servlet。

Wrapper中包含的组件有Servlet、ServletPool(Servlet对象池)和Pipeline组件(处理管道)。

Tomcat的请求处理过程

一个客户端请求到达Tomcat之后的处理流程如上图所示:

当Tomcat启动后,Connector的接收器Acceptor会监听是否有客户端连接。

一旦监听到客户端连接,则将连接交给线程池Executor,开始执行请求响应任务。

Http11Processor负责从客户端连接中读取Http报文并进行解析,解析后的报文封装成Request对象。

Maper根据Http协议请求的URL值和Host属性匹配由哪个Host、哪个Context和哪个Wrapper容器来处理请求。

CoyoteAdaptor负责将Connector组件和Engine容器连接起来,将Request对象和Response对象传递到Engine容器中。

Engine容器的请求处理管道开始工作,管道里包括若干Valve,每个Valve都负责一些处理逻辑。

Engine容器的请求处理管道工作完成后,再依次交给Host容器的处理管道、Context容器的处理管道和Wrapper容器的处理管道。最后将结果输出到客户端。

参考资料:《Tomcat内核设计剖析》

我会持续更新关于物联网、云原生、数字化技术方面的文章,用简单的语言描述复杂的技术,也会偶尔发表一下对IT产业的看法,请大家多多关注,欢迎留言和转发,希望与大家互动交流,谢谢。

关键词: tomcat虚拟主机 tomcat虚拟主机有什么用

上一篇:

下一篇:

猜你喜欢

【时快讯】tomcat虚拟主机的核心是什么?tomcat虚拟主机有什么用?

【时快讯】tomcat虚拟主机的核心是什么?tomcat虚

tomcat虚拟主机(tomcat虚拟主机有什么用)Tomcat组件Server和ServiceTomcat中Server是最顶级的组件...更多

2022-11-09 14:24:08
看点:北京哪里可以采摘樱桃?京郊有哪些好玩的地方?

看点:北京哪里可以采摘樱桃?京郊有哪些好玩的地

北京采摘樱桃(京郊这里不仅仅有樱桃采摘!)故人具鸡黍,邀我至田家。绿树村边合,青山郭外斜。开...更多

2022-11-09 14:32:41
九寨沟属于哪个省?九寨沟有哪些特色?3天天速读

九寨沟属于哪个省?九寨沟有哪些特色?3天天速读

九寨沟属于哪个省(九寨沟位于四川的什么方向)九寨沟县城永乐镇的海拔是1400米。九寨沟景区的沟口海...更多

2022-11-09 14:41:48
哪个动漫好看?值得看的十大动漫是什么?

哪个动漫好看?值得看的十大动漫是什么?

哪个动漫好看(值得看的十大动漫)现在国漫的一大通病那就是更新速度过慢,通常在完结之后少则等个一...更多

2022-11-09 14:30:40
三皇五帝的传说是什么?三皇五帝的传说故事有什么内容?2今头条

三皇五帝的传说是什么?三皇五帝的传说故事有什么

三皇五帝的传说(三皇五帝的传说故事内容)公元前221年,秦大大,嬴政陛下,欣然接纳群臣的荐书,以...更多

2022-11-09 14:43:21
安徽有哪些名茶?安徽茶叶在中国处于什么地位?

安徽有哪些名茶?安徽茶叶在中国处于什么地位?

安徽名茶(十大名茶安徽占4种)在中国十大名茶中,安徽茶占据四席,分别是黄山毛峰、太平猴魁、六安...更多

2022-11-09 14:24:02
朱元璋祖坟在哪里?朱元璋的祖坟传说是什么?

朱元璋祖坟在哪里?朱元璋的祖坟传说是什么?

朱元璋祖坟(朱元璋的祖坟传说!)中国的历史很长,野史也很长,如果分别写出一本书出来,野史的篇...更多

2022-11-09 14:22:20
中秋节又叫什么节?端午节的文化内涵是什么?1环球动态

中秋节又叫什么节?端午节的文化内涵是什么?1环

中秋节又叫什么节(端午节的文化内涵)更多

2022-11-09 14:35:21
什么是预备役?预备役一个月工资多少钱?4世界简讯

什么是预备役?预备役一个月工资多少钱?4世界简

什么是预备役(预备役一个月工资多少钱)咨询:你好小编,我是2017年退役的一名士兵,回地方后自己考...更多

2022-11-09 14:22:25
环球今亮点!优衣库女主角炒作 三里屯优衣库事件到底是怎么回事?

环球今亮点!优衣库女主角炒作 三里屯优衣库事件

几年前,北京三里屯的优衣库发生了一件不雅事情,该视频传出后便被大肆转发,并且引起了社会的更多

2022-11-08 14:30:24


© 2012-2020 财经快报网 版权所有

网站联系邮箱:435 227 67@qq.com