Tomcat是什么

本篇內容介紹了“Tomcat是什么”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

創(chuàng)新互聯(lián)建站主要從事網站制作、成都網站制作、網頁設計、企業(yè)做網站、公司建網站等業(yè)務。立足成都服務賽罕,十余年網站建設經驗,價格優(yōu)惠、服務專業(yè),歡迎來電咨詢建站服務:13518219792

6.1、Tomcat監(jiān)控管理工具

Tomcat Monitor模塊是一個Tomcat的監(jiān)控和診斷模塊,提供了一些基本的工具,可以對Tomcat的連接池、線程、內存、類加載以及JVM相關等進行監(jiān)控和診斷。Tomcat Monitor的出現,解決了廣大開發(fā)人員無法快速定位線上問題的尷尬問題,同時也幫助開發(fā)人員能夠通過簡單且統(tǒng)一的命令行工具來排查問題、查看程序運行時狀態(tài),而不需要使用各種包括jmap、jstat和BTrace等工具。

Tomcat Monitor模塊集成于Tomcat服務器內部,能夠對線程、連接池、內存和類加載等方面進行詳細且實時的監(jiān)控與診斷。

  • 進行連接池的監(jiān)控和管理

圖6-1-查看Tomcat連接基本狀態(tài)
圖6-1-查看Tomcat連接基本狀態(tài)

  • 檢測出當前Tomcat服務器中那些慢連接

圖6-2-檢測慢連接
圖6-2-檢測慢連接

  • 線程死鎖檢測
    圖6-3-線程死鎖檢測
    圖6-3-線程死鎖檢測

可以看出,線程 pool-1-thread-1 和 pool-1-thread-2 發(fā)生死鎖.下面兩行清晰描述了死鎖原因:

圖6-4-死鎖原因

thread-2 阻塞在被 thread-1 鎖住的對象 java.lang.String@114a3c6 上,
thread-1 阻塞在被 thread-2 鎖住的對象 java.lang.String@c4cee 上,

兩個線程互相等待, 導致死鎖.
輸出結果還顯示了發(fā)生死鎖的線程堆棧, 以便開發(fā)人員進一步排查發(fā)生死鎖的原因.

  • 診斷出CPU占用高的線程
    顯示最近一段時間 cpu% 持續(xù)過高的線程列表, 及其最近一次統(tǒng)計的 cpu%.

在碰到煩人的ClassNotFoundException或是NoClassDefFoundError這些異常的時候,可以定位類的加載情況
圖6-6-檢測類加載情況
圖6-6-檢測類加載情況

針對應用服務器的監(jiān)控和診斷,后續(xù)的發(fā)展規(guī)劃是在目前Tomcat Monitor的基礎上,集成其他諸如HouseMD這樣優(yōu)秀的Java監(jiān)控與診斷工具,使得不同的工具能夠以一種統(tǒng)一方式給開發(fā)人員使用。同時,還會和公司內部已經成熟的監(jiān)控報警系統(tǒng)打通,作為數據提供方來幫助更深入的監(jiān)控應用的運行情況。

6.2、隔離容器Pandora

Pandora,中文名潘多拉,是阿里中間件團隊打造的,基于HSF隔離技術構建的全新一代隔離容器。從解決二方包依賴沖突出發(fā),致力于統(tǒng)一管理通用的二方包,包括方便的二方包升級管理,監(jiān)控和管理,建立統(tǒng)一的二方包擴展編程方式等?;赑andora容器基礎上進行改造而來的Pandora-Framework,是一個類OSGi的模塊化運行框架。它的產出,使得OSGi這個一直以來隱藏在應用服務器和IDE工具中的神秘技術,第一次在生產環(huán)境中走入了我們的前臺應用系統(tǒng)。2013年9月在共享業(yè)務交易流程系統(tǒng)上線以來,目前將逐步應用于整個阿里交易流程系統(tǒng),構建了交易系統(tǒng)的模塊化運行環(huán)境。

功能介紹

  • 隔離解決三方包依賴沖突問題。針對三方包的依賴沖突問題,比如:log4j,httpclient,通常我們在開發(fā)過程中,常常碰到不同的二方包依賴了不同版本的三方包。面對這種情況,我們都是使用 Maven 工具強行將這些三方包指定到一個版本。但是,針對那些兼容性不好的三方包,這存在很大的風險。

  • 提供了一套完整的二方包大規(guī)??焖偕墮C制提供方便的二方包大規(guī)模升級方式,用戶只需要將自己的包及依賴的包按照隔離容器的規(guī)范放到隔離容器里面,就可以達到升級的效果。不需要業(yè)務方做任何事情。Pandora 容器已經和 Freedom(新版發(fā)布系統(tǒng))打通,在原有應用發(fā)布流程上,添加了 Pandora 發(fā)布流程,發(fā)布的時候,可以很方便的選擇需要使用那個版本的 Pandora 容器,哪個版本

  • 運行期開關和 Stableswitch(Stableswitch 是中間件團隊開發(fā)的,嵌入在應用內部,當服務器壓力比較大時,會通過開關功能來關閉一些不太重要的功能點)開關有區(qū)別,Stableswitch 開關是業(yè)務邏輯開關,面向的對象是應用,也就是應用里面的開關。而 Pandora 容器面向的是二方包的開關。運行期可以對所有應用里面使用的二方包做調配,是一個輕量級的方案。另外,相對于訂閱 diamond 數據方式實現的開關,這個粒度更細,可以針對每一個單機進行調控。

  • 監(jiān)控管理Pandora 容器提供方便的命令行模式,二方包提供者只需要簡單的實現 Pandora 的接口,就可以實現自己的命令行命令了。比如:可以實現一個功能,在運行期查看所有使用該二方包的應用的運行期數據,方便跟蹤及排查問題。

6.3、應用服務器雙11準備與優(yōu)化

這里重點講解下Pandora容器針對交易系統(tǒng)在雙十一之前進行的模塊化改造。談到模塊化,相信很多讀者都會在第一時間聯(lián)想到OSGi。沒錯,OSGi(JSR 291)是Open Services Gateway initiative的縮寫,為系統(tǒng)的模塊化開發(fā)定義了一個基礎規(guī)范和架構模型。迄今為止,在一些著名的IDE產品(Eclipse是第一個也是目前最成熟的OSGi實踐者)和應用服務器廠商(IBM、BEA、Oracle)中都已經采用了OSGi來創(chuàng)建“微內核與插件”的軟件架構,這樣一來,這些IDE和容器就可以被更好的模塊化,并且可以在運行時被動態(tài)裝配。

顯然,模塊化和動態(tài)化,是OSGi最顯著的兩大特性。模塊化,尤其是他的隔離機制,基本得到了大家的認可,但是針對動態(tài)化這個特性,是公認的OSGi中最具爭議的地方。

  • 從實用性角度來講,目前我們其實對于熱部署,動態(tài)替換等并沒有太強烈的需求,開發(fā)人員通常都能夠接受應用重啟。

  • 從復雜性角度來講,想要做到平滑熱替換,尤其是對于那些運行期有狀態(tài)的bundle而言,實現動態(tài)化相當復雜。

  • 從可行性角度來講,實現動態(tài)化,需要改變開發(fā)人員和運維人員的開發(fā)與運維習慣,在推廣上面臨極大的挑戰(zhàn)。

  • 廢棄OSGi,實現應用系統(tǒng)模塊化
    因此,Panodrar容器廢棄了OSGi框架,只是引入了OSGi隔離機制的思想,自己重新實現了ClassLoader的隔離,形成了一個全新的輕量級的隔離容器。如圖6-7所示。
    圖6-7-Pandora體系結構
    圖6-7-Pandora體系結構

下面重點從Bundle和類加載兩方面來講解下Pandora針對業(yè)務模塊化的改造。

  • Bundle – 最小的業(yè)務單元
    首先引入了Bundle的概念,使得業(yè)務系統(tǒng)內部邏輯能夠按照bundle為單元進行組織。同時提供了Maven插件用于bundle的生成,使得一個標準的Maven Web工程能夠按照子工程為單位進行無縫遷移。

  • 類加載 – 隔離的核心
    類加載機制是模塊化隔離的核心。根據業(yè)務系統(tǒng)模塊化的需要,我們需要設計一種既要使bundle具有嚴格的私密性,又要使bundle和主應用以及bundle之間具有靈活的互通性,因此重新設計了類加載機制。大體的類加載可以分為以下三步:

第一步:嘗試從import中加載。
Pandora在加載bundle的類的時候,首先會判斷當前類是否需要從其他bundle中獲取一些共享類。

第二步:嘗試從bundle自己類路徑下進行類加載。
Bundle的私有性需求已經規(guī)定了,每個bundle都應該有能力和外部業(yè)務系統(tǒng)環(huán)境隔離開來,因此一些三方包的加載,bundle自身目錄下的都會優(yōu)先于業(yè)務系統(tǒng)環(huán)境。

第三步:嘗試從外部三方容器中加載。
如果bundle聲明了需要從外部三方容器的biz classloader中來加載這個類,那么會嘗試從這個biz classloader中去加載。

“Tomcat是什么”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關的知識可以關注創(chuàng)新互聯(lián)網站,小編將為大家輸出更多高質量的實用文章!

當前標題:Tomcat是什么
本文地址:http://muchs.cn/article18/ipjogp.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供外貿建站、微信小程序網站營銷、網站內鏈、做網站、網站改版

廣告

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

h5響應式網站建設