一文读懂tomcat组件--一个web服务器的架构演化史
1. tomcat是誰?
?
2. tomcat可以做什么?
tomcat是一個web容器,可以將web應(yīng)用部署到tomcat,由它提供web服務(wù),一個web容器中可以部署多個web應(yīng)用,這些web應(yīng)用可以是同一個域名,也可以是多個域名的服務(wù)。
3. tomcat有哪些組件
4.怎么快速理解這些組件呢?
我們可以假設(shè)我們來設(shè)計一個web容器,我們該什么設(shè)計?
第一代:接收請求,處理請求,返回結(jié)果集中到整個web容器中,如下圖所示:
? ?
第二代 :連接管理和處理邏輯分開
? 使用過程中發(fā)現(xiàn),每次都要打開socket的連接,調(diào)用處理邏輯,然后關(guān)閉socket連接比較煩,干脆將socket的連接關(guān)閉交給Connector來處理,請求的業(yè)務(wù)邏輯交給Container來處理好了,就變成這樣了。
第三代:支持多種網(wǎng)絡(luò)協(xié)議
? 最初的目標是設(shè)計一個web服務(wù)器或者容器,那么如果想要支持更多的協(xié)議就需要新建不同的Connector和Container,此時就變成這樣子了,其中service包裝了Connector和Container
?
第四代:支持多個web應(yīng)用
? 既然是容器,就要支持多個應(yīng)用,每個應(yīng)用是有一個Context,且相互隔離,支持多個Context的架構(gòu)如下:
?
第五代:支持多域名
Context上下文不僅僅需要物理上的隔離,也需要邏輯上的隔離,如app1.example.com訪問context1,app1.test.com訪問context2.
此時的架構(gòu)應(yīng)該是這樣的,host可以支持多個context。
5.總結(jié):
web服務(wù)器的組件由server-->滿足功能
server+connector+Container-->職責分離
server+service+connector+Container-->支持多種協(xié)議
server+service+connector+Container+context-->支持多個應(yīng)用
server+service+connector+Container+host+context -->支持多個域名的多個應(yīng)用
? ? ? 其實就是一個分工組件細化的過程,類似于社會分工的細化,注意,Container在tomcat里也稱作engine。
?
轉(zhuǎn)載于:https://www.cnblogs.com/davidwang456/p/11323101.html
總結(jié)
以上是生活随笔為你收集整理的一文读懂tomcat组件--一个web服务器的架构演化史的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 为docker设置国内镜像【转】
- 下一篇: 设计模式常见面试题