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

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

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

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

繪制圖形使用的工具是 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(),通過(guò) ServerSocketChannel.open() 打開(kāi)一個(gè) ServerSocket,默認(rèn)綁定到 8080 端口,默認(rèn)的連接等待隊(duì)列長(zhǎng)度是 100, 當(dāng)超過(guò) 100 個(gè)時(shí)會(huì)拒絕服務(wù)。我們可以通過(guò)配置 conf/server.xml 中 Connector 的 acceptCount 屬性對(duì)其進(jìn)行定制。
  2. createExecutor() 用于創(chuàng)建 Worker 線程池。默認(rèn)會(huì)啟動(dòng) 10 個(gè) Worker 線程,Tomcat 處理請(qǐng)求過(guò)程中,Woker 最多不超過(guò) 200 個(gè)。我們可以通過(guò)配置 conf/server.xml 中 Connector 的 minSpareThreads 和 maxThreads 對(duì)這兩個(gè)屬性進(jìn)行定制。
  3. Pollor 用于檢測(cè)已就緒的 Socket。默認(rèn)最多不超過(guò) 2 個(gè),Math.min(2,Runtime.getRuntime().availableProcessors());。我們可以通過(guò)配置 pollerThreadCount 來(lái)定制。
  4. Acceptor 用于接受新連接。默認(rèn)是 1 個(gè)。我們可以通過(guò)配置 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。
  • 最值得說(shuō)的就是 StandardWrapper 的 Basic Valve,StandardWrapperValve
  1. allocate() 用來(lái)加載并初始化 Servlet,值的一提的是 Servlet 并不都是單例的,當(dāng) Servlet 實(shí)現(xiàn)了 SingleThreadModel 接口后,StandardWrapper 會(huì)維護(hù)一組 Servlet 實(shí)例,這是享元模式。當(dāng)然了 SingleThreadModel在 Servlet 2.4 以后就棄用了。
  2. createFilterChain() 方法會(huì)從 StandardContext 中獲取到所有的過(guò)濾器,然后將匹配 Request URL 的所有過(guò)濾器挑選出來(lái)添加到 filterChain 中。
  3. doFilter() 執(zhí)行過(guò)濾鏈,當(dāng)所有的過(guò)濾器都執(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)求處理流程
文章地址:http://aaarwkj.com/news/101030.html

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

廣告

聲明:本網(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í)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站
久久国产精品午夜亚洲欧美| 欧美亚洲成人免费电影| 男人天堂一区二区av| 亚洲熟妇亚洲熟妇亚洲熟妇 | 亚洲国产第一av导航| 91麻豆精品在线观看| 亚洲一区二区三区精品日韩| 亚洲欧美精品一中文字幕| 91九色中文视频在线观看| 色综合视频二区偷拍在线| 18禁黄网站免费视频| 国产原创剧情av网址| 久久人体午夜激情视频| 成人黄色动作片在线观看| 国产一级黄色录像大片| 韩国av电影免费观看| 91久久亚洲综合精品成人| 伊人激情一区二区三区| 91香蕉伊人综合久久麻豆| 国产深夜福利在线观看| 老熟妇奂伦一区二区三区| 日韩欧美国产麻豆91在线精品| 日本色小姐美国青青草原| 亚洲综合偷拍欧美一区色| 亚洲精品午夜久久久伊人| 亚洲国产色一区二区三区| 久久精品噜噜噜成人av农村| 伊人不卡中文字幕在线一区| 九九视频在线精品免费观看| 91在线国产手机视频| 久久久久亚洲av成人| 欧美日韩一区二区不卡视频| 91内射视频在线播放| 国产精品一区二区剧情熟女| 国产午夜精品一区二区三区| 亚洲精品国产av成人| 久激情内射婷内射蜜桃| 成人在线一区二区三区观看| 精品一区二区久久久久久网精| 18禁黄网站禁片免费视频| 亚洲大尺码在线视频香蕉|