1)服務器:安裝了服務器軟件的計算機
2)服務器軟件:接收用戶的請求,處理請求,做出響應
3)web服務器軟件:在web服務器軟件中,可以部署web項目,讓用戶通過瀏覽器來訪問這些項目
1) webLogic:oracle公司,大型的JavaEE服務器,支持所有的JavaEE規(guī)范,收費的。
2) webSphere:IBM公司,大型的JavaEE服務器,支持所有的JavaEE規(guī)范,收費的。
3) JBOSS:JBOSS公司的,大型的JavaEE服務器,支持所有的JavaEE規(guī)范,收費的。
4) Tomcat:Apache基金組織,中小型的JavaEE服務器,僅僅支持少量的JavaEE規(guī)范servlet/jsp。開源的,免費的。
HTTP是協(xié)議規(guī)范HTML是超文本標記語言用來規(guī)范顯示格式。
Tomcat 的2 個核心功能:
1) 處理Socket 連接,負責網(wǎng)絡字節(jié)流與Request 和Response 對象的轉化。
加載和管理Servlet,以及具體處理Request 請求。
2) Tomcat設計了兩個核心組件連接器(Connector)和容器(Container)來分別做這兩件事情。連接器負責對外交流,容器負責內(nèi)部處理。
我們可以把連接器的功能需求進一步細化,比如:
監(jiān)聽網(wǎng)絡端口。
接受網(wǎng)絡連接請求。
讀取請求網(wǎng)絡字節(jié)流。
根據(jù)具體應用層協(xié)議(HTTP/AJP)解析字節(jié)流,生成統(tǒng)一的Tomcat Request對象。
將Tomcat Request對象轉成標準的ServletRequest。
調(diào)用Servlet 容器,得到ServletResponse。
將ServletResponse轉成TomcatResponse 對象。
將TomcatResponse 轉成網(wǎng)絡字節(jié)流。
將響應字節(jié)流寫回給瀏覽器
---->綜上得到三個高內(nèi)聚的功能
1.網(wǎng)絡通信。
2.應用層協(xié)議解析。
3.Tomcat Request/Response與ServletRequest/ServletResponse的轉化
1)首先,根據(jù)協(xié)議和端口號選定Service 和Engine
2)然后,根據(jù)域名選定Host
3)之后,根據(jù)URL 路徑找到Context 組件
4)最后,根據(jù)URL 路徑找到Wrapper(Servlet)
清理你的tomcat
清理不必要的Web應用
清理XML配置文件
清理JAR文件(web lib目錄不應該出現(xiàn)servlet或者tomcat自身的jar包
清理其他文件(比如log日志,work目錄下的class)
禁止 Tomcat TLD 掃描
關閉 WebSocket 支持
關閉 JSP 支持
禁止 Servlet 注解掃描
并行啟動多個 Web 應用
CMSvs G1,G1的兩大特點:
(1)G1可以并發(fā)完成大部分GC的工作,這期間不會“Stop-The-World”。
(2)G1使用非連續(xù)空間,這使G1 能夠有效地處理非常大的堆。此外,G1可以同時收集年輕代和年老代。G1并沒有將Java堆分成三個空間(Eden、Survivor和Old),而是將堆分成許多(通常是幾百個)非常小的區(qū)域。這些區(qū)域是固定大小的(默認情況下大約為2MB)。每個區(qū)域都分配給一個空間。G1 收集器的Java 堆如下圖所示
問題:
1.什么是內(nèi)存泄漏
2.什么是內(nèi)存溢出(java.lang.OutOfMemoryError:Java heap space)
1)內(nèi)存泄漏
2)配置問題
3)過度使用finalize
gc問題的分析與解決
1. 使用jstat命令觀察gc的過程
2. 通過GCViewer 工具查看GC 日志,用GCViewer 打開程序指定輸出的gc.log,會看到這樣的圖:
3. 為了找到內(nèi)存泄漏點,我們通過jmap 工具生成Heap Dump:
jmap -dump:live,format=b,file=94223.bin94223
4. 用Eclipse MemoryAnalyzer 打開Dump文件,通過內(nèi)存泄漏分析,得到這樣一個分析報告:
從報告中可以看到,JVM內(nèi)存中有一個長度為4000 萬的List,至此我們也就找到了泄漏點。
文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://www.ezyhdfw.cn/yun/129960.html
摘要:相關推薦,豆瓣評分,人評價本書介紹了在編程中條極具實用價值的經(jīng)驗規(guī)則,這些經(jīng)驗規(guī)則涵蓋了大多數(shù)開發(fā)人員每天所面臨的問題的解決方案。實戰(zhàn)高并發(fā)程序設計推薦豆瓣評分,書的質(zhì)量沒的說,推薦大家好好看一下。 該文已加入開源文檔:JavaGuide(一份涵蓋大部分Java程序員所需要掌握的核心知識)。地址:https://github.com/Snailclimb... 【強烈推薦!非廣告!】...
摘要:所以,所謂的自動裝配,實際上就是如何自動將裝載到容器中來。實際上在版本中,模塊驅動注解的出現(xiàn),已經(jīng)有了一定的自動裝配的雛形,而真正能夠實現(xiàn)這一機制,還是在版本中,條件注解的出現(xiàn)。,我們來看一下的自動裝配是怎么一回事。在前面的分析中,Spring Framework一直在致力于解決一個問題,就是如何讓bean的管理變得更簡單,如何讓開發(fā)者盡可能的少關注一些基礎化的bean的配置,從而實現(xiàn)自動裝...
摘要:實戰(zhàn)高并發(fā)程序設計推薦豆瓣評分書的質(zhì)量沒的說,推薦大家好好看一下。推薦,豆瓣評分,人評價本書介紹了在編程中條極具實用價值的經(jīng)驗規(guī)則,這些經(jīng)驗規(guī)則涵蓋了大多數(shù)開發(fā)人員每天所面臨的問題的解決方案。 很早就想把JavaGuide的書單更新一下了,昨晚加今天早上花了幾個時間對之前的書單進行了分類和補充完善。雖是終極版,但一定還有很多不錯的 Java 書籍我沒有添加進去,會繼續(xù)完善下去。希望這篇...
摘要:劃下重點,服務容器是用于管理類的依賴和執(zhí)行依賴注入的工具。類的實例化及其依賴的注入,完全由服務容器自動的去完成。 本文首發(fā)于 深入剖析 Laravel 服務容器,轉載請注明出處。喜歡的朋友不要吝嗇你們的贊同,謝謝。 之前在 深度挖掘 Laravel 生命周期 一文中,我們有去探究 Laravel 究竟是如何接收 HTTP 請求,又是如何生成響應并最終呈現(xiàn)給用戶的工作原理。 本章將帶領大...
閱讀 1459·2023-01-11 13:20
閱讀 1815·2023-01-11 13:20
閱讀 1267·2023-01-11 13:20
閱讀 2007·2023-01-11 13:20
閱讀 4227·2023-01-11 13:20
閱讀 2885·2023-01-11 13:20
閱讀 1489·2023-01-11 13:20
閱讀 3814·2023-01-11 13:20