欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

談?wù)?Tomcat 請(qǐng)求處理流程

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

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

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

本文對(duì) Tomcat 的介紹以 Tomcat-9.0.0.M22 為標(biāo)準(zhǔn)。

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

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

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

Request Process

Acceptor

  • 需要注意的是,基本上每一個(gè)容器的 StandardPipeline 上都會(huì)有多個(gè)已注冊(cè)的 Valve,我們只關(guān)注每個(gè)容器的 Basic Valve。其他 Valve 都是在 Basic Valve 前執(zhí)行。
  • request.getHost().getPipeline().getFirst().invoke() 先獲取對(duì)應(yīng)的 StandardHost,并執(zhí)行其 pipeline。
  • request.getContext().getPipeline().getFirst().invoke() 先獲取對(duì)應(yīng)的 StandardContext,并執(zhí)行其 pipeline。
  • request.getWrapper().getPipeline().getFirst().invoke() 先獲取對(duì)應(yīng)的 StandardWrapper,并執(zhí)行其 pipeline。
  • 最值得說的就是 StandardWrapper 的 Basic Valve,StandardWrapperValve
  1. allocate() 用來加載并初始化 Servlet,值的一提的是 Servlet 并不都是單例的,當(dāng) Servlet 實(shí)現(xiàn)了 SingleThreadModel 接口后,StandardWrapper 會(huì)維護(hù)一組 Servlet 實(shí)例,這是享元模式。當(dāng)然了 SingleThreadModel在 Servlet 2.4 以后就棄用了。
  2. createFilterChain() 方法會(huì)從 StandardContext 中獲取到所有的過濾器,然后將匹配 Request URL 的所有過濾器挑選出來添加到 filterChain 中。
  3. doFilter() 執(zhí)行過濾鏈,當(dāng)所有的過濾器都執(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 實(shí)現(xiàn))
  • http://gearever.iteye.com/blog/1844203

網(wǎng)站名稱:談?wù)?Tomcat 請(qǐng)求處理流程
標(biāo)題路徑:http://www.aaarwkj.com/news30/101030.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)品牌網(wǎng)站設(shè)計(jì)、網(wǎng)站內(nèi)鏈服務(wù)器托管、自適應(yīng)網(wǎng)站標(biāo)簽優(yōu)化

廣告

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

成都網(wǎng)站建設(shè)
午夜激情在线观看国产| 成人性生交大片免费看多人| 日韩av在线专区观看| av成人黄色片在线播放| 偷拍色图一区二区二区| 国产三级视频网站在线观看| 国产91在线一区精品| 免费日韩黄片在线观看| 亚洲国产精品va在线香蕉| 一区二区亚洲国产精品| 欧美日韩国产激情在线观看| 欧美日韩久久免费观看| 欧美日韩亚洲国产精品视频| 欧美 日韩亚洲一区| 国产亚洲精品视频在线| 国产欧美日韩综合91| 亚洲成人有码在线观看| 2020亚洲欧美日韩在线| 杨幂一区二区在线观看| 午夜少妇诱惑一区二区三区| 日本道二区视频中文字幕| 中文字幕制服国产精品| 校花出白浆视频一区二区三区| 涩五月婷婷开心中文字幕| 亚洲成色在线综合剧情网站 | 日日干天天日夜夜操| 久久九特黄的免费大片| 自拍一区日韩二区欧美三区| 日韩不卡区高清在线视频| 日韩国产传媒在线精品| 国产亚洲精品久久久9| 亚洲国产av永久精品成人| 亚洲中文字幕精品视频乱码| 深夜十八禁在线免费观看| 日韩亚洲人成网站在线播放| 亚洲中文字幕乱码一二三| 午夜宅男在线视频观看| 色综合天天综合天天更新| 国产高清学生三级一区二区| 蜜臀av在线播放黑丝| 日韩精品一区二区视频|