成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Tomcat設(shè)計剖析(一)

amc / 1181人閱讀

摘要:默認情況下,不同的組件會自己創(chuàng)建線程池來使用。目前支持兩種,支持協(xié)議與協(xié)議的,組件的不同體現(xiàn)在其協(xié)議及模式的不同。組件維護會話的生成更新銷毀。是中最小級別的容器。超過會阻塞等待,直到有可用對象為止。

Tomcat整體結(jié)構(gòu)及組件如下圖所示

Server
a.提供監(jiān)聽機制,用于在Tomcat整個生命周期中對不同事件進行處理。
b.提供Tomcat容器全局的命名資源實現(xiàn)
Tomcat的運行實例的抽象,包含若干個Listener組件、GlobalNamingResource組件及若干個Service組件。

Service
Service組件由若干個Connector組件和Executor組件組合而成。
Connector組件負責監(jiān)聽某端口的客戶端請求,不同端口對應(yīng)不同的Connector。
Executor組件在Service抽象層提供了線程池,讓Service下的組件可以共用線程池。
默認情況下,不同的Connector組件會自己創(chuàng)建線程池來使用。其他組件也可以共享Service線程池。

Connector
Connector是Tomcat最核心的兩個組件之一,主要負責接收客戶端連接和客戶端請求的處理加工。
每個Connector都指定一個端口進行監(jiān)聽,分別對請求報文解析和對響應(yīng)報文組裝,解析生成Request對象,組裝生成Response對象,可以有多個Connector。
Protocol組件:是協(xié)議的抽象,將不同的協(xié)議進行了封裝,如:HTTP協(xié)議和AJP協(xié)議。
EndPoint組件:是接收端的抽象,BIO模式有JioEndpoint,NIO模式有NioEndpoint和本地I/O模式的AprEndpoint。
Acceptor組件:用于接收客戶端連接的接收器。
Executor組件:Connector自己的私有線程池。
Processor組件:處理客戶端請求的處理器,不同的協(xié)議和不同的I/O模式有不同的處理方式。
Mapper組件:路由器,對客戶端請求URL的映射,通過它可以將不同的請求轉(zhuǎn)發(fā)到對應(yīng)的Host組件、Context組件、Wrapper組件進行處理并響應(yīng)給客戶端。即將請求發(fā)送到某虛擬主機上的某個web應(yīng)用的某個servlet。
CoyoteAdapter組件:適配器,將Connector組件和Engine容器適配連接起來。把接收到的客戶端的請求報文解析成請求對象和響應(yīng)對象傳遞到Engine容器,交由容器處理。
目前Tomcat支持兩種Connector,支持HTTP協(xié)議與AJP協(xié)議的Connector,Connector組件的不同體現(xiàn)在其協(xié)議及I/O模式的不同。HTTP Connector所支持的協(xié)議版本為HTTP/1.1和HTTP/1.0。每個Connector實例對應(yīng)一個端口,在同一個Service中可以設(shè)置若干個Connector實例,端口必須不同,協(xié)議可以相同。如Http11Protocol(BIO模式)、Http11NioProtocol(NIO模式)。

Engine
全局引擎容器,標準實現(xiàn)是StandardEngine。
Host組件:是Engine容器的子容器,表示一個虛擬主機,不同的域名被抽象成一個Host。
AccessLog組件:負責記錄客戶端請求訪問日志,Engine容器是一個全局的Servlet容器,記錄的日志為所有客戶端的請求,無論訪問哪個虛擬主機。
Pipeline組件:Pipeline屬于一種設(shè)計模式,將不同級別的容器串聯(lián)起來的通道,請求進來的時候就可以通過管道進行流轉(zhuǎn)處理。
Cluster組件:有Engine和Host兩個級別的集群
Realm組件:存儲了用戶、密碼及權(quán)限等數(shù)據(jù),主要是配合Tomcat實現(xiàn)資源認證模塊

Host
表示虛擬主機,一個Engine可以包含若干個Host容器,一個Host容器可以包含若干個Context容器。

Context
Context容器包含若干個Wrapper組件、Realm組件、AccessLog組件、Manager組件等。
Manager組件:維護會話的生成、更新、銷毀。每個Context都有自己的會話管理器。
Wrapper是Tomcat中最小級別的容器。其他組件不再贅述。

Wrapper
包含servlet和servlet對象池
servlet對象池是為了支持一個Servlet對象對應(yīng)一個線程的SingleThreadModel接口而使用的策略,Wrapper會有一個Servlet堆,負責保存若干個Servlet對象,當需要Servlet對象時從堆中pop出一個對象,當用完之后push回堆中。Wrapper容器中最多可以有20個某servlet類對象。超過會阻塞等待,直到有可用對象為止。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/68889.html

相關(guān)文章

  • 原理剖析(第 013 篇)應(yīng)用系統(tǒng)性能調(diào)優(yōu)

    摘要:指標虛擬內(nèi)存已使用的大小,如果大于,表示你的機器物理內(nèi)存不足了每秒從磁盤讀入虛擬內(nèi)存的大小,如果這個值大于,表示物理內(nèi)存不夠用或者內(nèi)存泄露了,要查找耗內(nèi)存進程解決掉。每秒虛擬內(nèi)存寫入磁盤的大小,如果這個值大于,同上,單位為。 原理剖析(第 013 篇)應(yīng)用系統(tǒng)性能調(diào)優(yōu) - 一、大致介紹 1. 本人接手的一個打車系統(tǒng),因為出現(xiàn)了一次響應(yīng)十分緩慢的情況,因此才有了應(yīng)用調(diào)優(yōu)的篇章; 2、由于...

    roundstones 評論0 收藏0
  • Java學習必備書籍推薦終極版!

    摘要:實戰(zhàn)高并發(fā)程序設(shè)計推薦豆瓣評分書的質(zhì)量沒的說,推薦大家好好看一下。推薦,豆瓣評分,人評價本書介紹了在編程中條極具實用價值的經(jīng)驗規(guī)則,這些經(jīng)驗規(guī)則涵蓋了大多數(shù)開發(fā)人員每天所面臨的問題的解決方案。 很早就想把JavaGuide的書單更新一下了,昨晚加今天早上花了幾個時間對之前的書單進行了分類和補充完善。雖是終極版,但一定還有很多不錯的 Java 書籍我沒有添加進去,會繼續(xù)完善下去。希望這篇...

    Steve_Wang_ 評論0 收藏0
  • 【備戰(zhàn)春招/秋招系列】Java程序員必備書單

    摘要:相關(guān)推薦,豆瓣評分,人評價本書介紹了在編程中條極具實用價值的經(jīng)驗規(guī)則,這些經(jīng)驗規(guī)則涵蓋了大多數(shù)開發(fā)人員每天所面臨的問題的解決方案。實戰(zhàn)高并發(fā)程序設(shè)計推薦豆瓣評分,書的質(zhì)量沒的說,推薦大家好好看一下。 該文已加入開源文檔:JavaGuide(一份涵蓋大部分Java程序員所需要掌握的核心知識)。地址:https://github.com/Snailclimb... 【強烈推薦!非廣告!】...

    saucxs 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<