一文讀懂tomcat組件--一個web服務器的架構演化史

1. tomcat是誰?html

 

 
 

2. tomcat能夠作什麼?web

  tomcat是一個web容器,能夠將web應用部署到tomcat,由它提供web服務,一個web容器中能夠部署多個web應用,這些web應用能夠是同一個域名,也能夠是多個域名的服務。tomcat

3. tomcat有哪些組件服務器

4.怎麼快速理解這些組件呢?網絡

咱們能夠假設咱們來設計一個web容器,咱們該什麼設計?架構

第一代:接收請求,處理請求,返回結果集中到整個web容器中,以下圖所示:app

   

第二代 :鏈接管理和處理邏輯分開socket

   使用過程當中發現,每次都要打開socket的鏈接,調用處理邏輯,而後關閉socket鏈接比較煩,乾脆將socket的鏈接關閉交給Connector來處理,請求的業務邏輯交給Container來處理好了,就變成這樣了。設計

第三代:支持多種網絡協議3d

     最初的目標是設計一個web服務器或者容器,那麼若是想要支持更多的協議就須要新建不一樣的Connector和Container,此時就變成這樣子了,其中service包裝了Connector和Container

 

第四代:支持多個web應用

   既然是容器,就要支持多個應用,每一個應用是有一個Context,且相互隔離,支持多個Context的架構以下:

 

第五代:支持多域名

  Context上下文不單單須要物理上的隔離,也須要邏輯上的隔離,如app1.example.com訪問context1,app1.test.com訪問context2.

此時的架構應該是這樣的,host能夠支持多個context。

5.總結:

  web服務器的組件由server-->知足功能

  server+connector+Container-->職責分離

  server+service+connector+Container-->支持多種協議

  server+service+connector+Container+context-->支持多個應用

  server+service+connector+Container+host+context -->支持多個域名的多個應用

      其實就是一個分工組件細化的過程,相似於社會分工的細化,注意,Container在tomcat裏也稱做engine。

 

原文出處:https://www.cnblogs.com/davidwang456/p/11323101.html

相關文章
相關標籤/搜索