国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

帶大家一起深入Tomcat容器架構剖析

IT那活兒 / 609人閱讀
帶大家一起深入Tomcat容器架構剖析
一、web容器簡介


1
     概念       

1)服務器:安裝了服務器軟件的計算機

2)服務器軟件:接收用戶的請求,處理請求,做出響應

3)web服務器軟件:在web服務器軟件中,可以部署web項目,讓用戶通過瀏覽器來訪問這些項目

2
常見Web服務器軟件

1) webLogic:oracle公司,大型的JavaEE服務器,支持所有的JavaEE規范,收費的。

2) webSphere:IBM公司,大型的JavaEE服務器,支持所有的JavaEE規范,收費的。

3) JBOSS:JBOSS公司的,大型的JavaEE服務器,支持所有的JavaEE規范,收費的。

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


二、HTTP協議必知必會
1
HTTP 和 HTML 有什么區別?

HTTP是協議規范HTML是超文本標記語言用來規范顯示格式。

2
  http工作原理  


3
   http協議   


三、Tomcat系統架構


1
Tomcat總體架構

Tomcat 的2 個核心功能:

1) 處理Socket 連接,負責網絡字節流與Request 和Response 對象的轉化。

加載和管理Servlet,以及具體處理Request 請求。

2) Tomcat設計了兩個核心組件連接器(Connector)和容器(Container)來分別做這兩件事情。連接器負責對外交流,容器負責內部處理。

2
  連接器  

我們可以把連接器的功能需求進一步細化,比如:

監聽網絡端口。

接受網絡連接請求。

讀取請求網絡字節流。

根據具體應用層協議(HTTP/AJP)解析字節流,生成統一的Tomcat Request對象。

將Tomcat Request對象轉成標準的ServletRequest。

調用Servlet 容器,得到ServletResponse。

將ServletResponse轉成TomcatResponse 對象。

將TomcatResponse 轉成網絡字節流。

將響應字節流寫回給瀏覽器


---->綜上得到三個高內聚的功能

1.網絡通信。

2.應用層協議解析。

3.Tomcat Request/Response與ServletRequest/ServletResponse的轉化

3
   容器   

4
tomcat打破雙親委派加載機制

5
Tomcat類加載器的層次結構

6
請求定位Servlet的過程


1)首先,根據協議和端口號選定Service 和Engine

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

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

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


四、性能優化
  • 清理你的tomcat

  • 清理不必要的Web應用

  • 清理XML配置文件

  • 清理JAR文件(web lib目錄不應該出現servlet或者tomcat自身的jar包 provided

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

  • 禁止 Tomcat TLD 掃描  

  • 關閉 WebSocket 支持

  • 關閉 JSP 支持

  • 禁止 Servlet 注解掃描

  • 并行啟動多個 Web 應用


CMSvs G1,G1的兩大特點:

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

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


問題:

1.什么是內存泄漏

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

1)內存泄漏

2)配置問題

3)過度使用finalize


gc問題的分析與解決

1. 使用jstat命令觀察gc的過程

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

3. 為了找到內存泄漏點,我們通過jmap 工具生成Heap Dump:

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

4. 用Eclipse MemoryAnalyzer 打開Dump文件,通過內存泄漏分析,得到這樣一個分析報告:

從報告中可以看到,JVM內存中有一個長度為4000 萬的List,至此我們也就找到了泄漏點。


END



文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/129960.html

相關文章

  • 【備戰春招/秋招系列】Java程序員必備書單

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

    saucxs 評論0 收藏0
  • 深度剖析Spring Boot自動裝配機制實現原理

    摘要:所以,所謂的自動裝配,實際上就是如何自動將裝載到容器中來。實際上在版本中,模塊驅動注解的出現,已經有了一定的自動裝配的雛形,而真正能夠實現這一機制,還是在版本中,條件注解的出現。,我們來看一下的自動裝配是怎么一回事。在前面的分析中,Spring Framework一直在致力于解決一個問題,就是如何讓bean的管理變得更簡單,如何讓開發者盡可能的少關注一些基礎化的bean的配置,從而實現自動裝...

    不知名網友 評論0 收藏0
  • Java學習必備書籍推薦終極版!

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

    Steve_Wang_ 評論0 收藏0
  • 深入剖析 Laravel 服務容器

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

    abson 評論0 收藏0

發表評論

0條評論

IT那活兒

|高級講師

TA的文章

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