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

資訊專欄INFORMATION COLUMN

帶大家一起深入Tomcat容器架構(gòu)剖析

IT那活兒 / 620人閱讀
帶大家一起深入Tomcat容器架構(gòu)剖析
一、web容器簡(jiǎn)介


1
     概念       

1)服務(wù)器:安裝了服務(wù)器軟件的計(jì)算機(jī)

2)服務(wù)器軟件:接收用戶的請(qǐng)求,處理請(qǐng)求,做出響應(yīng)

3)web服務(wù)器軟件:在web服務(wù)器軟件中,可以部署web項(xiàng)目,讓用戶通過(guò)瀏覽器來(lái)訪問(wèn)這些項(xiàng)目

2
常見Web服務(wù)器軟件

1) webLogic:oracle公司,大型的JavaEE服務(wù)器,支持所有的JavaEE規(guī)范,收費(fèi)的。

2) webSphere:IBM公司,大型的JavaEE服務(wù)器,支持所有的JavaEE規(guī)范,收費(fèi)的。

3) JBOSS:JBOSS公司的,大型的JavaEE服務(wù)器,支持所有的JavaEE規(guī)范,收費(fèi)的。

4) Tomcat:Apache基金組織,中小型的JavaEE服務(wù)器,僅僅支持少量的JavaEE規(guī)范servlet/jsp。開源的,免費(fèi)的。


二、HTTP協(xié)議必知必會(huì)
1
HTTP 和 HTML 有什么區(qū)別?

HTTP是協(xié)議規(guī)范HTML是超文本標(biāo)記語(yǔ)言用來(lái)規(guī)范顯示格式。

2
  http工作原理  


3
   http協(xié)議   


三、Tomcat系統(tǒng)架構(gòu)


1
Tomcat總體架構(gòu)

Tomcat 的2 個(gè)核心功能:

1) 處理Socket 連接,負(fù)責(zé)網(wǎng)絡(luò)字節(jié)流與Request 和Response 對(duì)象的轉(zhuǎn)化。

加載和管理Servlet,以及具體處理Request 請(qǐng)求。

2) Tomcat設(shè)計(jì)了兩個(gè)核心組件連接器(Connector)和容器(Container)來(lái)分別做這兩件事情。連接器負(fù)責(zé)對(duì)外交流,容器負(fù)責(zé)內(nèi)部處理。

2
  連接器  

我們可以把連接器的功能需求進(jìn)一步細(xì)化,比如:

監(jiān)聽網(wǎng)絡(luò)端口。

接受網(wǎng)絡(luò)連接請(qǐng)求。

讀取請(qǐng)求網(wǎng)絡(luò)字節(jié)流。

根據(jù)具體應(yīng)用層協(xié)議(HTTP/AJP)解析字節(jié)流,生成統(tǒng)一的Tomcat Request對(duì)象。

將Tomcat Request對(duì)象轉(zhuǎn)成標(biāo)準(zhǔn)的ServletRequest。

調(diào)用Servlet 容器,得到ServletResponse。

將ServletResponse轉(zhuǎn)成TomcatResponse 對(duì)象。

將TomcatResponse 轉(zhuǎn)成網(wǎng)絡(luò)字節(jié)流。

將響應(yīng)字節(jié)流寫回給瀏覽器


---->綜上得到三個(gè)高內(nèi)聚的功能

1.網(wǎng)絡(luò)通信。

2.應(yīng)用層協(xié)議解析。

3.Tomcat Request/Response與ServletRequest/ServletResponse的轉(zhuǎn)化

3
   容器   

4
tomcat打破雙親委派加載機(jī)制

5
Tomcat類加載器的層次結(jié)構(gòu)

6
請(qǐng)求定位Servlet的過(guò)程


1)首先,根據(jù)協(xié)議和端口號(hào)選定Service 和Engine

2)然后,根據(jù)域名選定Host

3)之后,根據(jù)URL 路徑找到Context 組件

4)最后,根據(jù)URL 路徑找到Wrapper(Servlet)


四、性能優(yōu)化
  • 清理你的tomcat

  • 清理不必要的Web應(yīng)用

  • 清理XML配置文件

  • 清理JAR文件(web lib目錄不應(yīng)該出現(xiàn)servlet或者tomcat自身的jar包 provided

  • 清理其他文件(比如log日志,work目錄下的class)

  • 禁止 Tomcat TLD 掃描  

  • 關(guān)閉 WebSocket 支持

  • 關(guān)閉 JSP 支持

  • 禁止 Servlet 注解掃描

  • 并行啟動(dòng)多個(gè) Web 應(yīng)用


CMSvs G1,G1的兩大特點(diǎn):

(1)G1可以并發(fā)完成大部分GC的工作,這期間不會(huì)“Stop-The-World”。

(2)G1使用非連續(xù)空間,這使G1 能夠有效地處理非常大的堆。此外,G1可以同時(shí)收集年輕代和年老代。G1并沒(méi)有將Java堆分成三個(gè)空間(Eden、Survivor和Old),而是將堆分成許多(通常是幾百個(gè))非常小的區(qū)域。這些區(qū)域是固定大小的(默認(rèn)情況下大約為2MB)。每個(gè)區(qū)域都分配給一個(gè)空間。G1 收集器的Java 堆如下圖所示


問(wèn)題:

1.什么是內(nèi)存泄漏

2.什么是內(nèi)存溢出(java.lang.OutOfMemoryError:Java heap space)

1)內(nèi)存泄漏

2)配置問(wèn)題

3)過(guò)度使用finalize


gc問(wèn)題的分析與解決

1. 使用jstat命令觀察gc的過(guò)程

2. 通過(guò)GCViewer 工具查看GC 日志,用GCViewer 打開程序指定輸出的gc.log,會(huì)看到這樣的圖:

3. 為了找到內(nèi)存泄漏點(diǎn),我們通過(guò)jmap 工具生成Heap Dump:

jmap -dump:live,format=b,file=94223.bin94223

4. 用Eclipse MemoryAnalyzer 打開Dump文件,通過(guò)內(nèi)存泄漏分析,得到這樣一個(gè)分析報(bào)告:

從報(bào)告中可以看到,JVM內(nèi)存中有一個(gè)長(zhǎng)度為4000 萬(wàn)的List,至此我們也就找到了泄漏點(diǎn)。


END



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

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

相關(guān)文章

  • 【備戰(zhàn)春招/秋招系列】Java程序員必備書單

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

    saucxs 評(píng)論0 收藏0
  • 深度剖析Spring Boot自動(dòng)裝配機(jī)制實(shí)現(xiàn)原理

    摘要:所以,所謂的自動(dòng)裝配,實(shí)際上就是如何自動(dòng)將裝載到容器中來(lái)。實(shí)際上在版本中,模塊驅(qū)動(dòng)注解的出現(xiàn),已經(jīng)有了一定的自動(dòng)裝配的雛形,而真正能夠?qū)崿F(xiàn)這一機(jī)制,還是在版本中,條件注解的出現(xiàn)。,我們來(lái)看一下的自動(dòng)裝配是怎么一回事。在前面的分析中,Spring Framework一直在致力于解決一個(gè)問(wèn)題,就是如何讓bean的管理變得更簡(jiǎn)單,如何讓開發(fā)者盡可能的少關(guān)注一些基礎(chǔ)化的bean的配置,從而實(shí)現(xiàn)自動(dòng)裝...

    不知名網(wǎng)友 評(píng)論0 收藏0
  • Java學(xué)習(xí)必備書籍推薦終極版!

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

    Steve_Wang_ 評(píng)論0 收藏0
  • 深入剖析 Laravel 服務(wù)容器

    摘要:劃下重點(diǎn),服務(wù)容器是用于管理類的依賴和執(zhí)行依賴注入的工具。類的實(shí)例化及其依賴的注入,完全由服務(wù)容器自動(dòng)的去完成。 本文首發(fā)于 深入剖析 Laravel 服務(wù)容器,轉(zhuǎn)載請(qǐng)注明出處。喜歡的朋友不要吝嗇你們的贊同,謝謝。 之前在 深度挖掘 Laravel 生命周期 一文中,我們有去探究 Laravel 究竟是如何接收 HTTP 請(qǐng)求,又是如何生成響應(yīng)并最終呈現(xiàn)給用戶的工作原理。 本章將帶領(lǐng)大...

    abson 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<