Tomcat 是 Java WEB 開發接觸最多的 Servlet 容器,但它不僅僅是一個 Servlet 容器,它還是一個 WEB 應用服務器,在微服務架構體系下,為了降低部署成本,減少資源的開銷,追求的是輕量化與穩定,而 Tomcat 是一個輕量級應用服務器,自然被很多開發人員所接受。
Tomcat 里面藏著很多值得我們每個 Java WEB 開發者學習的知識,可以這么說,當你弄懂了 Tomcat 的設計原理,Java WEB 開發對你來說已經沒有什么秘密可言了。本篇文章主要是跟大家聊聊 Tomcat 的內部架構體系,讓大家對 Tomcat 有個整體的認知。
前面我也說了,Tomcat 的本質其實就是一個 WEB 服務器 + 一個 Servlet 容器,那么它必然需要處理網絡的連接與 Servlet 的管理,因此,Tomcat 設計了兩個核心組件來實現這兩個功能,分別是連接器和容器,連接器用來處理外部網絡連接,容器用來處理內部 Servlet,我用一張圖來表示它們的關系:
一個 Tomcat 代表一個 Server 服務器,一個 Server 服務器可以包含多個 Service 服務,Tomcat 默認的 Service 服務是 Catalina,而一個 Service 服務可以包含多個連接器,因為 Tomcat 支持多種網絡協議,包括 HTTP/1.1、HTTP/2、AJP 等等,一個 Service 服務還會包括一個容器,容器外部會有一層 Engine 引擎所包裹,負責與處理連接器的請求與響應,連接器與容器之間通過 ServletRequest 和 ServletResponse 對象進行交流。
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.