热re99久久精品国产99热-热re99久久精品国99热-热re99久久国产精品-热re91久久精品国产91热-热er99久久6国产精品免费-热99这里只有精品

您當前的位置 :環球傳媒網>資訊 > 正文
環球熱點!tomcat虛擬主機有什么用?Tomcat的請求處理過程是怎樣的?
2022-11-21 10:15:35 來源:環球傳媒網 編輯:

在生活中,很多人都不知道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虛擬主機有什么用

相關閱讀
分享到:
版權和免責申明

凡注有"環球傳媒網"或電頭為"環球傳媒網"的稿件,均為環球傳媒網獨家版權所有,未經許可不得轉載或鏡像;授權轉載必須注明來源為"環球傳媒網",并保留"環球傳媒網"的電頭。

Copyright ? 1999-2017 cqtimes.cn All Rights Reserved 環球傳媒網-重新發現生活版權所有 聯系郵箱:8553 [email protected]
主站蜘蛛池模板: 欧美a一片xxxx片与善交 | 人生路不在线观看完整版 | 私人黄色影院 | 插得爽| 91精品国产在线 | 女人pp被扒开流水了 | 99综合在线 | 精品国产乱码久久久久久免费流畅 | 四虎1515hhc0m| 欧美人妖另类性hd | 国产成人亚洲综合91精品555 | 亚洲激情在线 | 免费看国产精品麻豆 | 人与动人物性行为zozo共患病 | 国产亚洲视频网站 | 日韩伦理一区 | 日本亚洲娇小与黑人tube | 2021麻豆剧果冻传媒入口永久 | 久久99国产视频 | 人人人人人看碰人人免费 | 学生小泬无遮挡女HD | 国产麻豆网 | 校花被强迫np肉高h 校服下的白嫩小乳尖h1v1 | 射玉足| 99久久一区二区精品 | 欧美巨吊 | 小妇人电影免费完整观看2021 | 农夫69小说小雨与农村老太 | 亚洲人成网站在线观看播放青青 | 白丝女仆被啪到深夜漫画 | 国产精品亚洲精品日韩已方 | 福利一区福利二区 | 日本大乳护士的引诱图片 | 国产精品欧美亚洲韩国日本99 | 亚洲福利一区二区 | 美女的隐私无遮挡撒尿 | 国产不卡视频 | 亚洲免费在线观看视频 | 婚色阿花在线全文免费笔 | 日本色频| 被老头肉至怀孕小说 |