Tomcat原理剖析

一、Tomcat頂層架構

俗話說,站在巨人的肩膀上看世界,一般學習的時候也是先總覽一下整體,然後逐個部分個個擊破,最後形成思路,瞭解具體細節,Tomcat的結構很複雜,但是 Tomcat 非常的模塊化,找到了 Tomcat最核心的模塊,問題纔可以遊刃而解,瞭解了Tomcat的整體架構對以後深入瞭解Tomcat來說至關重要!

先上一張Tomcat的頂層結構圖(圖A),如下:

Tomcat中最頂層的容器是Server,代表着整個服務器,從上圖中可以看出,一個Server可以包含至少一個Service,用於具體提供服務。

Service主要包含兩個部分:Connector和Container。從上圖中可以看出 Tomcat 的心臟就是這兩個組件,他們的作用如下:

1、Connector用於處理連接相關的事情,並提供Socket與Request和Response相關的轉化; 

2、Container用於封裝和管理Servlet,以及具體處理Request請求;

一個Tomcat中只有一個Server,一個Server可以包含多個Service,一個Service只有一個Container,但是可以有多個Connectors,這是因爲一個服務可以有多個連接,如同時提供Http和Https鏈接,也可以提供向相同協議不同端口的連接,示意圖如下(Engine、Host、Context下邊會說到):

多個 Connector 和一個 Container 就形成了一個 Service,有了 Service 就可以對外提供服務了,但是 Service 還要一個生存的環境,必須要有人能夠給她生命、掌握其生死大權,那就非 Server 莫屬了!所以整個 Tomcat 的生命週期由 Server 控制。

另外,上述的包含關係或者說是父子關係,都可以在tomcat的conf目錄下的server.xml配置文件中看出,下圖是刪除了註釋內容之後的一個完整的server.xml配置文件(Tomcat版本爲8.0)

發佈了40 篇原創文章 · 獲贊 3 · 訪問量 3549
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章