Tomcat各元件介紹以及請求處理的具體過程

2021-08-18 22:37:52 字數 1945 閱讀 1139

1.server元件

server是最頂級的元件,代表tomcat的執行例項,在乙個jvm中只會包含乙個。在server的整個生命週期中,不同階段會有不同的事情發生,為了方便擴充套件,它引入了***的方式,所以它也包含了listener元件,為了方便整合jndi,引入了globalnamingresource元件,同時也包含了service核心元件

2.service元件

service是服務的抽象,它代表請求從接收到處理的所有元件的集合。設計上server可以包含多個service元件,每個service組

件都包含若干用於接收客戶端訊息的connector元件和用於處理請求的engine元件。不同的connector元件使用不同的通訊協議(http、ajp)若干connector元件和乙個客戶端請求處理元件engine組成的集合即為service.service元件還包含了若干executor元件,每個executor都是乙個執行緒池,它可以為service內所有元件提供執行緒池執行任務。

3.connector元件

connector主要職責是接受客戶端鏈結並接受訊息報文,訊息報文經由它解析後送往容器中處理

4.engine元件

engine代表全域性servlet引擎。每個service元件只能包含乙個engine容器元件,但engine元件可以包含若干host容器元件

accesslog元件:客戶端的訪問日誌,所有客戶端訪問都會被記錄

cluster元件:它提供集群功能,將engine容器需要共享的資料同步到集群中的其他tomcat例項上

pipeline元件:engine容器對請求進行處理的管道。

5.host元件

tomcat中host元件代表是虛擬主機,這些虛擬主機可以存放若干web應用的抽象(context容器)。除了context元件外,還包括

accesslog元件:客戶端的訪問日誌,所有客戶端訪問都會被記錄

cluster元件:它提供集群功能,將engine容器需要共享的資料同步到集群中的其他tomcat例項上

pipeline元件:host容器對請求進行處理的管道。

6.context元件

context元件是web應用的抽象,開發的web應用部署到tomcat後執行就會轉化成context物件。主要包含了各種靜態資源、若干servlet以及各種其他動態資源

accesslog元件:客戶端的訪問日誌,所有客戶端訪問都會被記錄

servlet元件:servlet即web應用開發常用的servlet,我們會在servlet中編寫好請求的邏輯處理。

請求處理的過程:

①tomcat啟動後,connector元件的接收器(acceptor)將會監聽是否有客戶端套接字連線並接受socket

②監聽到客戶端連線,將連線交給執行緒池executor處理,開始執行請求響應任務

③httpllprocessor元件負責從客戶端連線中讀取訊息報文,然後解析http的請求行、請求頭部、請求體。將解析後的報文組裝成request物件,方便日後通過request物件

獲取http協議的相關值

中找到對應的servlet。然後將結果儲存到request物件中,方便後面處理時通過request物件選擇容器

⑤coyoteadaptor組將負責將connector元件和engine容器鏈結起來,把處理過程生成的request和response傳遞到engine容器,呼叫他的管道。

⑥engine容器的管道開始處理請求,管道包含若干閥門(value),每個閥門負責某些處理邏輯。用***value代表閥門,可以根據自己的需要往這個閥門中新增多個閥門,首先

執行這個***value,然後才執行基礎閥門enginevalue,負責呼叫host容器的管道

⑦host容器的管道開始處理請求,首先執行這些閥門,然後執行基礎閥門hostvalue,他繼續往下呼叫context容器的管道

Tomcat中各元件介紹

xml配置檔案結構 頂層類元素 乙個配置檔案中只能有乙個元素,可包含多個service。頂層類元素 本身不是容器,可包含乙個engine,多個connector。聯結器類元素 代表通訊介面。容器類元素 為特定的service元件處理所有客戶請求,可包含多個host。容器類元素 為特定的虛擬主機處理所...

Wex5各元件介紹

1 2 select 元件 3 頁面互動以及傳遞引數 包含父子雙向頁面之間資料傳遞方法介紹 內嵌頁面向父頁面返回資料 在內嵌頁面中,呼叫this.owner.send data 方法,可以向父頁面返回資料,此時會觸發父頁面中對應windowcontainer元件的onreceive事件,我們可以在此...

hadoop2以及各元件學習

推薦一本較為良好的書籍 hadoop海量資料處理 技術詳解與專案實戰 好的資料記錄 hadoop2學習路線 hdfs hadoop journal node 作用 hdfs基本使用 yarn資源管理 mapreduce分布式處理 zookeeper原理 深入學習 raft演算法 raft 演算法是一...