tomcat組件圖解 一個(gè)web服務(wù)器的架構(gòu)演化史
1. tomcat是誰(shuí)?
2. tomcat可以做什么?
tomcat是一個(gè)web容器,可以將web應(yīng)用部署到tomcat,由它提供web服務(wù),一個(gè)web容器中可以部署多個(gè)web應(yīng)用,這些web應(yīng)用可以是同一個(gè)域名,也可以是多個(gè)域名的服務(wù)。
3. tomcat有哪些組件
4.怎么快速理解這些組件呢?
我們可以假設(shè)我們來(lái)設(shè)計(jì)一個(gè)web容器,我們?cè)撌裁丛O(shè)計(jì)?
第一代:接收請(qǐng)求,處理請(qǐng)求,返回結(jié)果集中到整個(gè)web容器中,如下圖所示:
第二代 :連接管理和處理邏輯分開(kāi)
使用過(guò)程中發(fā)現(xiàn),每次都要打開(kāi)socket的連接,調(diào)用處理邏輯,然后關(guān)閉socket連接比較煩,干脆將socket的連接關(guān)閉交給Connector來(lái)處理,請(qǐng)求的業(yè)務(wù)邏輯交給Container來(lái)處理好了,就變成這樣了。
第三代:支持多種網(wǎng)絡(luò)協(xié)議
最初的目標(biāo)是設(shè)計(jì)一個(gè)web服務(wù)器或者容器,那么如果想要支持更多的協(xié)議就需要新建不同的Connector和Container,此時(shí)就變成這樣子了,其中service包裝了Connector和Container
第四代:支持多個(gè)web應(yīng)用
既然是容器,就要支持多個(gè)應(yīng)用,每個(gè)應(yīng)用是有一個(gè)Context,且相互隔離,支持多個(gè)Context的架構(gòu)如下:
第五代:支持多域名
Context上下文不僅僅需要物理上的隔離,也需要邏輯上的隔離,如app1.example.com訪問(wèn)context1,app1.test.com訪問(wèn)context2.
此時(shí)的架構(gòu)應(yīng)該是這樣的,host可以支持多個(gè)context。
5.總結(jié):
- web服務(wù)器的組件由server-->滿足功能
- server+connector+Container-->職責(zé)分離
- server+service+connector+Container-->支持多種協(xié)議
- server+service+connector+Container+context-->支持多個(gè)應(yīng)用
- server+service+connector+Container+host+context -->支持多個(gè)域名的多個(gè)應(yīng)用
其實(shí)就是一個(gè)分工組件細(xì)化的過(guò)程,類似于社會(huì)分工的細(xì)化,注意,Container在tomcat里也稱作engine。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
eclipse中的項(xiàng)目無(wú)法添加到tomcat中的處理方法
這篇文章主要介紹了eclipse中的項(xiàng)目無(wú)法添加到tomcat中,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-05-05基于centos自己構(gòu)建一個(gè)tomcat鏡像的實(shí)現(xiàn)
本文主要介紹了基于centos自己構(gòu)建一個(gè)tomcat鏡像的實(shí)現(xiàn),文中根據(jù)實(shí)例編碼詳細(xì)介紹的十分詳盡,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03tomcat內(nèi)存溢出問(wèn)題解決經(jīng)歷
這篇文章主要介紹了tomcat內(nèi)存溢出問(wèn)題解決經(jīng)歷,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-09-09淺談Tomcat中<Context>標(biāo)簽的使用方式和注意事項(xiàng)
本文主要介紹了淺談Tomcat中<Context>標(biāo)簽的使用方式和注意事項(xiàng),Context標(biāo)簽可以設(shè)置Tomcat默認(rèn)項(xiàng)目,設(shè)置項(xiàng)目的瀏覽器訪問(wèn)路徑,讓項(xiàng)目修改后自動(dòng)重新編譯部署,感興趣的可以了解下2023-11-11Tomcat解析XML和反射創(chuàng)建對(duì)象原理
這篇文章主要介紹了Tomcat解析XML和反射創(chuàng)建對(duì)象原理,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-08-08騰訊云服務(wù)器tomcat端口無(wú)法訪問(wèn)的解決方法
本文主要介紹了騰訊云服務(wù)器tomcat端口無(wú)法訪問(wèn)的解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-08-08SpringBoot?升級(jí)內(nèi)嵌Tomcat的操作示例
這篇文章主要介紹了SpringBoot升級(jí)內(nèi)嵌Tomcat,這里采用的是屏蔽舊的依賴,然后手動(dòng)寫(xiě)dependency的方式,本文結(jié)合示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2023-08-08