tomcat6.0.x框架結構圖-tomcat 6.x 源碼閱讀

2013-09-05
昨天搞域名,沒有寫blog,愧疚蠻久,還好域名搞定了...嘻嘻
繼續行程,記錄點滴... : tomcat6.0.x已經經過svn導入eclipse運行,接下來就是閱碼之旅。,每一個人閱讀源碼方式可能不盡相同,我第一次,沒啥經驗,憑空想象本身的方式:瞭解程序結構,運行程序,跟蹤源碼,設置斷點,打印輸出,驗證假設,弄清楚啓動過程,瞭解數量流向。 咱們都知道tomcat調度Servlet來處理來自HTTP的請求,我猜測原理是這樣的:Tomcat啓動ServerSocket監聽網絡端口,tomcat分配線程處理來自HTTP的請求,線程負責解析請求,在請求上調用過濾器,使用反射調用Servlet的service方法來處理請求完成響應,tomcat如何實現調度功能?如何實現處理HTTP協議的請求?結構框架如何。
先看看tomcat6.0.x的框架結構圖,在網上看到過多種框架圖,有記憶的有兩種。html

圖片來自網絡
來自Tomcat 系統架構與設計模式java

圖片來自網絡
來自[忘記來自哪一個blog了]設計模式

第一張圖給以的信息不多,只標出了Server,Server下面的多個Service,以及Service中的組件,結構層次很清晰,可是不夠細,例如Engine,Host,Context等組件沒有畫出來,以及他們之間的層次關係也沒有,我喜歡第二張圖,由於第二張展現了tomcat的結構層次圖,從Server到servlet全都畫出來,一看就明白他們的層次關係,同時第二張圖中還有數據流圖,從起點到servlet,再從servlet回來,線路明瞭,能減小精力在數據流的分析,固然第二張圖也有的組件沒有畫出來,好比Logging,Naming等。
咱們都知道tomcat的基本就是容器,經過容器來管理資源,調度信息,控制數據流向,tomcat的框架是由容器構成的,往框架往裏面替補容器,容器連起來構成一個處理請求的生產線。圖中傳遞不少信息,容器之間的關係,數據流向,組件結構,tomcat的框架結構直接展示出來。tomcat

還有一張必須看的圖 圖片來自網絡
來自Tomcat啓動過程原理詳解網絡

這張結構圖也是描述tomcat框架結構的,他從另外一個維度來描述,經過網絡端口來源,逐級分解結構,從圖上咱們能夠看出,一個Server能夠有多個Service,但一個Service下面只能有一個Engine,一個Engine下面能夠有多個Host,一個Host下面能夠有多個Context,數據流向也能夠從圖中獲知,請求從Connector中開始,一直經過容器傳遞到Context中,再有Context傳遞給Servlet,還有一個就是Server會啓動一個ServerSocket來監聽8005端口,負責監聽是否要關閉Server。
今天就到這裏了,歡迎吐槽...架構

是否每一天都是新,咱們要如何改變框架

相關文章
相關標籤/搜索