Tomcat的整體架構

Sherlockmmc發表於2021-01-16

 

  Tomcat通過聯結器和容器這兩個核心元件完成整體工作,聯結器負責處理socket連線和網路位元組流與Request和Response物件的轉化;容器負責載入和管理Servlet,以及具體處理Request請求。

在學習Tomcat整體架構前需要知道,Tomcat 支援的多種 I/O 模型和應用層協議。

Tomcat 支援的多種 I/O 模型和應用層協議

 Tomcat 支援的 I/O 模型有:

  • NIO:非阻塞 I/O,採用 Java NIO 類庫實現。
  • NIO.2:非同步 I/O,採用 JDK 7 最新的 NIO.2 類庫實現。
  • APR:採用 Apache 可移植執行庫實現,是 C/C++ 編寫的本地庫。

  Tomcat 支援的應用層協議有:

  • HTTP/1.1:這是大部分 Web 應用採用的訪問協議。
  • AJP:用於和 Web 伺服器整合(如 Apache)。
  • HTTP/2:HTTP 2.0 大幅度的提升了 Web 效能。

  Tomcat 為了實現支援多種 I/O 模型和應用層協議,一個容器可能對接多個聯結器。

  在一個Tomcat中由多個Service,每個Service裡面包含多個聯結器和一個容器。通過在 Tomcat 中配置多個 Service,可以實現通過不同的埠號來訪問同一臺機器上部署的不同應用。聯結器與容器之間通過標準的 ServletRequest 和 ServletResponse 通訊。

 

 

Tomcat整體工作流程 

  • 瀏覽器對伺服器發起請求;
  • 聯結器接收到請求並處理,將其轉化成Request;
  • 將Request轉換成ServletRequesta發給容器進行處理;
  • 容器通過這個ServeletRequest來定位Servlet,如果Servlet沒有被載入,就需要載入這個Servelet;
  • 執行Servlet中的方法
  • 響應給聯結器一個ServletResponse物件
  • 聯結器解析Response物件
  • 將解析後的物件響應給前端。

相關文章