五月四房婷婷-五月桃花网婷婷亚洲综合-五月天丁香花婷婷-五月天丁香色-天天射视频-天天射天

您當(dāng)前的位置 :環(huán)球傳媒網(wǎng)>資訊 > 正文
環(huán)球熱點(diǎn)!tomcat虛擬主機(jī)有什么用?Tomcat的請求處理過程是怎樣的?
2022-11-21 10:15:35 來源:環(huán)球傳媒網(wǎng) 編輯:

在生活中,很多人都不知道tomcat虛擬主機(jī)(tomcat虛擬主機(jī)有什么用)是什么意思,其實(shí)他的意思是非常簡單的,下面就是小編搜索到的tomcat虛擬主機(jī)(tomcat虛擬主機(jī)有什么用)相關(guān)的一些知識(shí),我們一起來學(xué)習(xí)下吧!

tomcat虛擬主機(jī)(tomcat虛擬主機(jī)有什么用)


(相關(guān)資料圖)

Tomcat組件

Server和Service

Tomcat中Server是最頂級(jí)的組件,它代表Tomcat的運(yùn)行實(shí)例,一個(gè)JVM中只會(huì)包含一個(gè)Server。為了方便擴(kuò)展,Server中引入了監(jiān)聽器Listener組件;為了方便集成JNDI,引入了GlobalNamingResources組件。Server中最重要的組件還是Service。

一個(gè)Server包括多個(gè)Service

在Tomcat中,Service組件是服務(wù)的抽象,一個(gè)Server中可以包含多個(gè)Service。Service組件負(fù)責(zé)從接收客戶端請求到處理請求的整個(gè)過程,內(nèi)部包含了若干接收客戶端消息的 Connector 組件和一個(gè)處理請求的 Engine 組件。

此外,Service組件還包含了Executor組件,每一個(gè)Executor都是一個(gè)線程池,它可以為Service內(nèi)其他組件提供執(zhí)行任務(wù)的線程資源。

Connector

Tomcat的核心可以認(rèn)為主要由連接器(Connector)組件和容器(Container)組件組成,其中Connector負(fù)責(zé)處理客戶端連接,而Container則負(fù)責(zé)對請求進(jìn)行邏輯處理,并把結(jié)果返回給客戶端。

不同Connect對應(yīng)不同的通信協(xié)議

Connector主要的職責(zé)就是接收客戶端連接并接收消息報(bào)文,消息報(bào)文經(jīng)由它解析后送往容器中處理。因?yàn)門omcat支持不同的通信協(xié)議,例如HTTP協(xié)議、AJP(Apache JServ Protocol)協(xié)議等,所以需要不同的Connector組件,每種協(xié)議對應(yīng)一個(gè)Connector組件。

另外不同類型的網(wǎng)絡(luò)I/O,Connector組件的內(nèi)部實(shí)現(xiàn)也不相同,可分為阻塞I/O和非阻塞I/O。以HTTP協(xié)議為例,看看阻塞I/O和非阻塞I/O的Connector內(nèi)部實(shí)現(xiàn)有何不同。

BIO Connector

BIO Connector組件

阻塞I/O的Connector主要由三個(gè)組件組成:

Http11Protocol組件,是HTTP協(xié)議1.1版本的抽象,主要包含JIoEndpoint組件和Http11Processor組件。Tomcat啟動(dòng)時(shí),JIoEndpoint內(nèi)部的Acceptor開始監(jiān)聽某個(gè)端口,一個(gè)請求到來后將被扔進(jìn)線程池Executor,由線程池進(jìn)行任務(wù)處理。處理過程主要是通過Http11Processor組件對HTTP協(xié)議解析并傳遞到Engine容器。

Mapper組件,負(fù)責(zé)對客戶端請求進(jìn)行路由,即通過請求地址找到對應(yīng)的Servlet。

CoyoteAdaptor組件,將Connector和Container適配起來的適配器。

NIO Connector

非阻塞I/O的Connector的結(jié)構(gòu)類似BIO Connector,主要區(qū)別在于:

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

增加了一個(gè)Poller組件,負(fù)責(zé)輪詢多個(gè)客戶端連接,不斷檢測各個(gè)連接是否有可讀數(shù)據(jù),如果有客戶端可讀,則嘗試進(jìn)行讀取并解析消息報(bào)文。

Container

Tomcat內(nèi)部有4個(gè)級(jí)別的容器,分別是Engine、Host、Context和Wrapper。Engine代表全局Servlet引擎,每個(gè)Service組件只能包含一個(gè)Engine容器組件,但Engine組件可以包含若干Host 容器組件。

Tomcat容器

Engine

除了Host以外,Engine容器還包括了Engine容器級(jí)別的Listener組件(監(jiān)聽器)、AccessLog組件(日志)、Cluster組件(集群功能)、Pipeline組件(請求處理管道)、Realm組件(用戶權(quán)限)。

Host

Host組件代表虛擬主機(jī)的抽象,一個(gè)虛擬主機(jī)中可以存放若干Web應(yīng)用的抽象,即一個(gè)Host可以包含多個(gè)Context容器。

和Engine類似,Host容器中也包含了Listener、AccessLog、Cluster、Pipeline、Realm這些組件,不過這些組件都是Host容器級(jí)別的。

Context

Context組件是Web應(yīng)用的抽象,我們開發(fā)的Web應(yīng)用部署到Tomcat后運(yùn)行時(shí)就會(huì)生成一個(gè)Context對象。

Context包含了應(yīng)用級(jí)別的Listener、AccessLog、Pipeline、Realm組件,還包括了Loader組件(加載web應(yīng)用資源)、Manager組件(會(huì)話管理)、NamingResource住院(命名資源)、Mapper組件(Servlet映射器)和Wrapper容器。

Wrapper

Wrapper容器是Tomcat中4個(gè)級(jí)別的容器中最小的,與之相對應(yīng)的是Servlet,一個(gè)Wrapper對應(yīng)一個(gè)Servlet。

Wrapper中包含的組件有Servlet、ServletPool(Servlet對象池)和Pipeline組件(處理管道)。

Tomcat的請求處理過程

一個(gè)客戶端請求到達(dá)Tomcat之后的處理流程如上圖所示:

當(dāng)Tomcat啟動(dòng)后,Connector的接收器Acceptor會(huì)監(jiān)聽是否有客戶端連接。

一旦監(jiān)聽到客戶端連接,則將連接交給線程池Executor,開始執(zhí)行請求響應(yīng)任務(wù)。

Http11Processor負(fù)責(zé)從客戶端連接中讀取Http報(bào)文并進(jìn)行解析,解析后的報(bào)文封裝成Request對象。

Maper根據(jù)Http協(xié)議請求的URL值和Host屬性匹配由哪個(gè)Host、哪個(gè)Context和哪個(gè)Wrapper容器來處理請求。

CoyoteAdaptor負(fù)責(zé)將Connector組件和Engine容器連接起來,將Request對象和Response對象傳遞到Engine容器中。

Engine容器的請求處理管道開始工作,管道里包括若干Valve,每個(gè)Valve都負(fù)責(zé)一些處理邏輯。

Engine容器的請求處理管道工作完成后,再依次交給Host容器的處理管道、Context容器的處理管道和Wrapper容器的處理管道。最后將結(jié)果輸出到客戶端。

參考資料:《Tomcat內(nèi)核設(shè)計(jì)剖析》

我會(huì)持續(xù)更新關(guān)于物聯(lián)網(wǎng)、云原生、數(shù)字化技術(shù)方面的文章,用簡單的語言描述復(fù)雜的技術(shù),也會(huì)偶爾發(fā)表一下對IT產(chǎn)業(yè)的看法,請大家多多關(guān)注,歡迎留言和轉(zhuǎn)發(fā),希望與大家互動(dòng)交流,謝謝。

關(guān)鍵詞: tomcat虛擬主機(jī) tomcat虛擬主機(jī)有什么用

相關(guān)閱讀
分享到:
版權(quán)和免責(zé)申明

凡注有"環(huán)球傳媒網(wǎng)"或電頭為"環(huán)球傳媒網(wǎng)"的稿件,均為環(huán)球傳媒網(wǎng)獨(dú)家版權(quán)所有,未經(jīng)許可不得轉(zhuǎn)載或鏡像;授權(quán)轉(zhuǎn)載必須注明來源為"環(huán)球傳媒網(wǎng)",并保留"環(huán)球傳媒網(wǎng)"的電頭。

Copyright ? 1999-2017 cqtimes.cn All Rights Reserved 環(huán)球傳媒網(wǎng)-重新發(fā)現(xiàn)生活版權(quán)所有 聯(lián)系郵箱:8553 591@qq.com
主站蜘蛛池模板: 亚洲高清在线视频 | 日本黄色免费在线观看 | 色愉拍亚洲偷自拍 | 色羞羞| 日日草天天干 | 丝袜国产在线 | 日韩爽爽视频爽爽 | 狠狠色综合网站久久久久久久 | 国内精品免费视频 | 日韩在线视频免费看 | 国产成人精选免费视频 | 老司机午夜在线视频免费 | 久久国产亚洲欧美日韩精品 | 国产视频网站在线观看 | 国产成+人+综合+亚洲 欧美 | 欧美成人 一区二区三区 | 高h超辣bl文 | 国内精品免费视频自在线 | 亚洲午夜精品久久久久久抢 | 天天综合久久 | 永久看片 | 亚洲a在线观看 | 免费乱理伦片手机在线观看 | 亚洲欧洲日韩综合 | 8x福利精品第一福利视频导航 | 国产精品视频分类一区 | 一级黄色在线视频 | 人人草人 | 91精品成人免费国产 | 毛片在线全部免费观看 | 精品国产一区二区三区在线 | 天天爱天天色天天干 | 免费看污污的视频 | 一级特黄录像播放 | 亚洲国产成人久久笫一页 | 久久午夜国产片 | 国产欧美日韩综合 | 国产男女 爽爽爽爽视频 | 2020久久精品国产免费 | 三级福利 | 欧美一级裸片 |