欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

談談 Tomcat 請求處理流程

2021-02-15    分類: 網(wǎng)站建設

很多東西在時序圖中體現(xiàn)的已經(jīng)非常清楚了,沒有必要再一步一步的作介紹,所以本文以圖為主,然后對部分內(nèi)容加以簡單解釋。

繪制圖形使用的工具是 PlantUML + Visual Studio Code + PlantUML Extension

本文對 Tomcat 的介紹以 Tomcat-9.0.0.M22 為標準。

Tomcat-9.0.0.M22 是 Tomcat 目前最新的版本,但尚未發(fā)布,它實現(xiàn)了 Servlet4.0 及 JSP2.3 并提供了很多新特性,需要 1.8 及以上的 JDK 支持等等,詳情請查閱 Tomcat-9.0-doc。

https://tomcat.apache.org/tomcat-9.0-doc/index.html

  1. initServerSocket(),通過 ServerSocketChannel.open() 打開一個 ServerSocket,默認綁定到 8080 端口,默認的連接等待隊列長度是 100, 當超過 100 個時會拒絕服務。我們可以通過配置 conf/server.xml 中 Connector 的 acceptCount 屬性對其進行定制。
  2. createExecutor() 用于創(chuàng)建 Worker 線程池。默認會啟動 10 個 Worker 線程,Tomcat 處理請求過程中,Woker 最多不超過 200 個。我們可以通過配置 conf/server.xml 中 Connector 的 minSpareThreads 和 maxThreads 對這兩個屬性進行定制。
  3. Pollor 用于檢測已就緒的 Socket。默認最多不超過 2 個,Math.min(2,Runtime.getRuntime().availableProcessors());。我們可以通過配置 pollerThreadCount 來定制。
  4. Acceptor 用于接受新連接。默認是 1 個。我們可以通過配置 acceptorThreadCount 對其進行定制。

Request Process

Acceptor

  • 需要注意的是,基本上每一個容器的 StandardPipeline 上都會有多個已注冊的 Valve,我們只關(guān)注每個容器的 Basic Valve。其他 Valve 都是在 Basic Valve 前執(zhí)行。
  • request.getHost().getPipeline().getFirst().invoke() 先獲取對應的 StandardHost,并執(zhí)行其 pipeline。
  • request.getContext().getPipeline().getFirst().invoke() 先獲取對應的 StandardContext,并執(zhí)行其 pipeline。
  • request.getWrapper().getPipeline().getFirst().invoke() 先獲取對應的 StandardWrapper,并執(zhí)行其 pipeline。
  • 最值得說的就是 StandardWrapper 的 Basic Valve,StandardWrapperValve
  1. allocate() 用來加載并初始化 Servlet,值的一提的是 Servlet 并不都是單例的,當 Servlet 實現(xiàn)了 SingleThreadModel 接口后,StandardWrapper 會維護一組 Servlet 實例,這是享元模式。當然了 SingleThreadModel在 Servlet 2.4 以后就棄用了。
  2. createFilterChain() 方法會從 StandardContext 中獲取到所有的過濾器,然后將匹配 Request URL 的所有過濾器挑選出來添加到 filterChain 中。
  3. doFilter() 執(zhí)行過濾鏈,當所有的過濾器都執(zhí)行完畢后調(diào)用 Servlet 的 service() 方法。

Reference

  • 《How Tomcat works》
  • https://www.amazon.com/How-Tomcat-Works-Budi-Kurniawan/dp/097521280X
  • 《Tomcat 架構(gòu)解析》– 劉光瑞
  • http://product.dangdang.com/25084132.html
  • Tomcat-9.0-doc
  • https://tomcat.apache.org/tomcat-9.0-doc/index.html
  • apache-tomcat-9.0.0.M22-src
  • http://www-eu.apache.org/dist/tomcat/tomcat-9/v9.0.0.M22/src/
  • tomcat架構(gòu)分析 (connector NIO 實現(xiàn))
  • http://gearever.iteye.com/blog/1844203

網(wǎng)站題目:談談 Tomcat 請求處理流程
文章地址:http://chinadenli.net/news/101030.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供面包屑導航關(guān)鍵詞優(yōu)化、定制網(wǎng)站、全網(wǎng)營銷推廣網(wǎng)站設計公司App設計

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站
日韩精品人妻少妇一区二区| 亚洲精品一区二区三区免| 五月天丁香婷婷狠狠爱| 国产精品一区二区视频大全| 欧美日韩精品综合在线| 手机在线不卡国产视频| 欧美人妻一区二区三区| 国产又大又硬又粗又湿| 国产在线一区中文字幕| 日韩美女偷拍视频久久| 欧美精品女同一区二区| 丰满的人妻一区二区三区| 在线欧洲免费无线码二区免费| 国产午夜福利片在线观看| 欧美在线观看视频三区| 夫妻激情视频一区二区三区| 国产精品一区二区视频| 色好吊视频这里只有精| 99热九九热这里只有精品| 美女黄色三级深夜福利| 欧美尤物在线观看西比尔| 精品少妇一区二区视频| 五月婷婷欧美中文字幕| 色婷婷日本视频在线观看| 在线观看国产成人av天堂野外| 在线一区二区免费的视频| 91精品国产综合久久福利| 国产精品视频久久一区| 麻豆国产精品一区二区| 国产一级特黄在线观看| 国产黑人一区二区三区| 国产精品一区日韩欧美| 爱在午夜降临前在线观看| 亚洲欧美日韩精品永久| 日本不卡在线视频你懂的| 国产乱淫av一区二区三区| 91老熟妇嗷嗷叫太91| 亚洲精品国产福利在线| 国产精品激情在线观看| 日本免费一区二区三女| 亚洲妇女黄色三级视频|