首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

《How Tomcat Works》讀書筆記:Tomcat 核心組件與容器升級架構

     編輯:Java 綜合教學

《How Tomcat Works》讀書筆記:Tomcat 核心組件與容器升級架構

本文梳理 Tomcat 早期架構核心類職責及容器層級升級演進,幫助理解 Servlet 容器核心設計。

核心啟動與連接處理類

  • Bootstrap:服務器啟動入口,負責初始化類加載器、啟動 Catalina
  • HttpConnector:連接器組件,創建 ServerSocket 監聽 HTTP 請求,將 Socket 轉換為 Request/Response 對象
  • HttpProcessor:請求處理器,解析 HTTP 請求行、頭、體。關鍵設計:不解析查詢字符串與請求體參數,交由 Servlet 開發者通過 Request API 按需解析,提升性能。

容器升級架構演進

Tomcat 容器採用層級架構,每層負責不同範圍的請求處理:

  1. Engine:頂層容器,管理多個 Host,處理所有請求
  2. Host:虛擬主機,管理多個 Context(Web 應用)
  3. Context:Web 應用上下文,管理 Servlet、Filter、Listener 等
  4. Wrapper:最底層,封裝單個 Servlet 實例

請求流向:Connector → Engine → Host → Context → Wrapper → Servlet

每層容器實現 Pipeline-Valve 鏈,Valve 負責具體處理邏輯(如訪問日誌、單點登錄),支持動態攔截鏈。

架構圖解

容器層級架構圖 Pipeline-Valve 鏈示意

關鍵設計啟示

  • 職責分離:Connector 只管網絡 I/O,Container 管 Servlet 生命周期
  • 組合模式:Container 統一接口,Engine/Host/Context/Wrapper 遞歸組合
  • 責任鏈:Valve 鏈實現橫切關注點(日誌、安全、壓縮)
  • 延遲解析:HttpProcessor 不預解析參數,按需解析減少無用開銷

理解早期架構有助於掌握現代 Tomcat(NIO/NIO2、非阻塞、虛擬線程)的演進脈絡。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved