欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
JMX IN ACTION---第一章
JMX IN ACTION---第一章
分類(lèi):JMX 2011-06-07 23:43 63人閱讀評論(0)收藏舉報
第一章 資源管理與 JMX
分布式應用、設備和服務(wù)設施以不同的組織方式出現在一個(gè)企業(yè)里。在你的公司,你可能通過(guò)公司內網(wǎng)或通過(guò)防火墻之外的網(wǎng)絡(luò )服務(wù)得到數據。例如你可以通過(guò)一個(gè)共享的日歷應用或一個(gè)財務(wù)應用來(lái)填寫(xiě)一個(gè)費用單。必須有人維護所有應用,不僅僅是這些應用,還包括支持這些應用的硬件,都需要維護。資源管理包含應用和支持應用的硬件。實(shí)際上,通過(guò)開(kāi)發(fā)JMX 資源管理應用程序,應用和支持應用的硬件都可以被有效管理。本書(shū)將向你展示怎樣使用JMX 管理和監控你的企業(yè)資源— 包括硬件和軟件。
無(wú)論你是否已經(jīng)熟悉JMX 或是打算買(mǎi)這本書(shū)來(lái)弄清楚到底什么是JMX ,你都需要首先明白JMX 存在的理由。本章你將會(huì )學(xué)到JMX 基礎知識,一些JMX 術(shù)語(yǔ)以及基礎JMX 架構。我們的討論會(huì )使用一個(gè)自行車(chē)商店的web 應用作為例子,在這個(gè)應用中,人們可以登入這個(gè)站點(diǎn)購買(mǎi)自行車(chē)和輪胎,以及進(jìn)入和自行車(chē)有關(guān)的文章和內容的連接。
資源管理
資源管理是一個(gè)管理概念,它對企業(yè)中的應用和資源提供用于管理的計劃和工具。對于典型的企業(yè),資源管理是一個(gè)報告企業(yè)應用和硬件健康狀況的一個(gè)工具?;谫Y源的健康狀況,IT 工程師可以對系統中的失敗和緊急事件作出反應。
改進(jìn)的資源監視和管理系統可以使IT 工程師盡早的發(fā)現應用的問(wèn)題,以在問(wèn)題出現時(shí)盡快的提供解決方法。這樣IT 工程師就由被動(dòng)變?yōu)橹鲃?dòng)了。假如你意識到資源性能正在下降,那么你極有可能幫助避免了一場(chǎng)災難性的失敗。更進(jìn)一步,你可以通過(guò)一個(gè)單獨的管理控制臺來(lái)遠程調整資源和設備。
當前許多企業(yè)的管理環(huán)境缺乏對應用的快速響應。且許多應用監視和管理方案不僅成本很高而且很難實(shí)現。本節我將會(huì )比較典型的環(huán)境和我們自己的理想環(huán)境(它們之間的差距很可能讓你感到吃驚)。然后,我們將向你展示,在典型的資源開(kāi)發(fā)、努力和支持方面你可以做什么。
1.1.1 管理環(huán)境現狀
當前的管理對象可以分為兩類(lèi):網(wǎng)絡(luò )和應用。大多數普通的網(wǎng)絡(luò )(硬件)管理工具使用簡(jiǎn)單網(wǎng)絡(luò )管理協(xié)議(SNMP ),而對于像web 站點(diǎn)一類(lèi)的應用,多數企業(yè)開(kāi)發(fā)者要么使用應用內置的管理工具或者自己開(kāi)發(fā)工具。還記得前面提到的“資源管理包括應用和硬件兩方面”嗎?
硬件和網(wǎng)絡(luò )管理
當前多數網(wǎng)絡(luò )監控和管理系統使用SNMP 解決方案對硬件提供監控和管理能力。SNMP 是一個(gè)已經(jīng)被廣泛使用多年的監控標準。對例子中的自行車(chē)網(wǎng)店來(lái)說(shuō),你可以使用SNMP 監控運行這個(gè)應用的服務(wù)器的健康狀況和活動(dòng)以及后端應用。
受管設備的信息存儲在管理信息庫(Management Information Base ,MIB )中,MIB 是設備信息的一個(gè)層次表示。一個(gè)受管設備可以用位于MIB 樹(shù)中的一個(gè)對象名或對象ID 來(lái)表示。一個(gè)可能的名字:
iso.identified-organization.dod.internet.private.enterprise.myenterprise.myvariables.myProduct 或者其他類(lèi)似的。一個(gè)對象ID 使用一系列數字作為文本名(關(guān)于MIB 的更多信息,請參考SNMP 規范:http://www.ietf.org )。
幸運的是許多硬件提供商會(huì )在他們的設備里提供MIB 的定義和SNMP 鉤子。但是由于SNMP 開(kāi)發(fā)的困難程度,很少有應用會(huì )使用SMNP 鉤子。
SNMP 開(kāi)發(fā)不是一件容易的事,大多數開(kāi)發(fā)者并沒(méi)有受到這方面很好的培訓。很不走運,SNMP 不能很容易的對你的自行車(chē)店提供監控和管理。對于Java 日常開(kāi)發(fā)者來(lái)說(shuō),開(kāi)發(fā)SNMP 不是一件好差事。
應用管理
軟件公司在開(kāi)發(fā)應用時(shí),通常不會(huì )考慮它的運行環(huán)境和配置,直到部署時(shí),才焦頭爛額的去考慮怎樣維護系統,怎樣處理緊急事件。一些公司在他們自己的產(chǎn)品中內置管理工具或管理控制臺,對大多公司來(lái)說(shuō),應用管理來(lái)自于他們應用運行的平臺, 一般是Web 或應用服務(wù)器。
當開(kāi)發(fā)自行車(chē)商店的時(shí)候,你不僅要考慮此應用的健康狀況,還需要考慮應用服務(wù)器、web 服務(wù)器以及數據庫等其他軟件的狀況。如果沒(méi)有一個(gè)標準、一致的管理平臺,就不得不對暴露應用屬性、健康狀況和統計編寫(xiě)特定的代碼。實(shí)際上,如果你換一個(gè)不同的監控方案,你不得不重新編寫(xiě)代碼。
當前典型的管理環(huán)境,IT 工程師總是被動(dòng)在維護應用。硬件和應用管理方案常常在部署階段才被想起。當然,開(kāi)發(fā)一個(gè)通用、可復用的管理和監控系統本身就是一件困難的事事情。
1.1.2 理想的管理環(huán)境
理想的管理環(huán)境應該具有主動(dòng)解決問(wèn)題的能力。管理系統應該可以持續的監控設備和應用的健康狀況。如果一個(gè)設備宕機了,管理系統可以發(fā)現一個(gè)替代設備,并將請求重新路由到替代設備上,然后通知事故管理員。例如如果自行車(chē)網(wǎng)站宕掉了或者超負荷運行了,那么管理系統應該分發(fā)一些服務(wù)到另一個(gè)服務(wù)提供者,并通知管理員,甚至可以啟動(dòng)另一個(gè)web 服務(wù)器以分擔原始服務(wù)器的負擔。
理想的管理系統不僅僅需要時(shí)刻關(guān)注應用的健康,還需要知道應用內部的一些情況。例如,它可以快速的生成比較自行車(chē)商店成功和失敗交易的報告。在系統管理層次,系統中當前的可執行線(xiàn)程數應該在執行期是可以改變的。管理系統可以基于它收集的應用和設備數據作出決定并采取措施。
不幸的是,理想的管理環(huán)境需要耗費很多經(jīng)歷和資源去實(shí)現,開(kāi)發(fā)管理工具,你需要為你的應用和網(wǎng)絡(luò )資源定制接口,并且可能需要很多其他的資源和配置來(lái)能保證在性能和可用性上有最大的靈活性。因此,你應該建立一個(gè)比當前系統更好并且易于構建和維護的系統,而不是去建立一個(gè)理想的管理系統。
1.1.3 真實(shí)的管理環(huán)境
一個(gè)可行的方案也許是當前的管理環(huán)境和理想的管理環(huán)境的一個(gè)折中方案。通過(guò)收集和綜合網(wǎng)絡(luò )應用和設備的信息,從而得到一個(gè)更好的解決方法,然后自動(dòng)的去管理或者由系統管理員來(lái)實(shí)施。讓我們還是以自行車(chē)商店為例來(lái)說(shuō)明問(wèn)題,它正思考著(zhù)建立一個(gè)管理系統呢。
一個(gè)擬定的管理方案
設想你正在運行著(zhù)我們前面提到那個(gè)自行車(chē)在線(xiàn)商店,顧客可以在他上面買(mǎi)自行車(chē)和輪胎。為了保證顧客的交易不被打斷,你安裝了另一個(gè)服務(wù)器以備第一個(gè)服務(wù)器突然宕機了。在整個(gè)環(huán)境中,web 服務(wù)器、應用服務(wù)器、數據庫、網(wǎng)絡(luò )設備共同提供了你所需的服務(wù)。下面的列出了在這個(gè)環(huán)境中需要監控的和管理的需求。
§         監控平臺運行狀況 — 你需要了解 web 和應用那個(gè)服務(wù)器以及支持他們的硬件的健康狀 況。網(wǎng)絡(luò )硬件向外暴露SNMP 接口,通過(guò)這些接口可以報告它的健康狀況和任何發(fā)生的錯誤。同樣的,web 服務(wù)器也向外報告錯誤,并且允許你查詢(xún)它的運行狀況。數據庫也是如此,以便于查詢(xún)它的性能和運行狀況以及可能出現的錯誤。
§         在應用級別配置資源 — 你可能想直接連接自行車(chē)網(wǎng)站來(lái)進(jìn)行配置和管理。當你開(kāi)發(fā)這個(gè)應用時(shí),你已經(jīng)預先在它里邊內置了管理程序以滿(mǎn)足你需要的各種信息。你可以連到這個(gè)應用的服務(wù)器,修改一頁(yè)可以顯示的條目數,或者查看數據庫狀況是不是當前數據庫的負擔很重,以決定是否減少連接池中活動(dòng)的連接數;你也可以減少線(xiàn)程池中的活動(dòng)線(xiàn)程數以減低從外邊來(lái)的并發(fā)請求。通過(guò)進(jìn)一步的調整,使各種資源得到合理的應用。
§         收集應用統計數據 — 隨著(zhù)時(shí)間推移,為了進(jìn)一步配置你的自行車(chē)網(wǎng)點(diǎn)應用,你可能還想收集各種重要的事務(wù)統計數據、查詢(xún)數據等等。例如你想比較各個(gè)分類(lèi)的訪(fǎng)問(wèn)量和實(shí)際的成交量,以及惡意攻擊系統的數量。實(shí)際上,你完全可以把這些信息也放到管理系統中去。
§         調試選項 — 不要輕視用于分析的信息的數量。幸運的是,你已經(jīng)提前意識到你將會(huì )在調試時(shí)候,需要要打開(kāi)日志。通過(guò)管理API ,就可以允許自己在修改配置后不需要重新啟動(dòng)應用,就可以打開(kāi)debug 選項,并將日志重定向至控制臺以供debug 。
§         監視服務(wù)器性能 — 你的Web 應用需要監視運行狀況和負載狀況。如果在第一個(gè)server 上負載過(guò)多,你可能就需要就將一部分負載轉移到備份server 上。為了避免失敗的情況發(fā)生,你還需要通過(guò)mail 通知和打印件注意致命事件的發(fā)生。
關(guān)于這個(gè)方案
本節描述的這個(gè)監視和管理框架,基本覆蓋了當前應用管理的重要方面。但是,實(shí)現這樣一個(gè)框架確實(shí)昂貴和困難的,最終,管理員不得不面對不同的服務(wù)和硬件的不同的管理控制臺和接口。
Java 解決方案 : JMX
前面幾節,我們描述了一個(gè)涵蓋企業(yè)應用所需的監控和管理框架,然而,必須指出的是,構建那樣一個(gè)管理框架是很困難的,并且將會(huì )給管理員許多不同類(lèi)型的管理工具去管理系統。本書(shū)中你將會(huì )看到,使用JMS 構建一個(gè)管理環(huán)境,將會(huì )更簡(jiǎn)單、更具有伸縮性,且開(kāi)發(fā)周期很短。JMX 是Java 新加入的一個(gè)框架,它提供了一個(gè)標準的管理方案,包括我們前幾節所描述的那些功能,JMX 允許你將所有的資源(硬件和軟件)打包成java 對象,然后將他們暴露在分布式環(huán)境中,并且JMX 提供了一個(gè)機制,可以很簡(jiǎn)單的將既存的管理協(xié)議,如SNMP ,映射到JMX 自己的管理結構中。
讓我們看看前幾節描述的管理方案怎么使用JMX 來(lái)實(shí)現:
§         平臺運行狀況 — 一如前面提到的,通過(guò)JMX 你將非Java 資源和硬件接口包裝成Java 對象,然后將他們置入JMX 管理環(huán)境。通過(guò)Java 包裝,你可以和WEB 應用服務(wù)器交互,和硬件通信以驅動(dòng)系統。
§         配置資源和收集統計信息 — 使用JMX ,你可以直接暴露應用和服務(wù)的API ,此外你還可以動(dòng)態(tài)的選擇暴露API 的一部分。隨后通過(guò)JMX 管理工具,你可以在任何時(shí)間invoke 或查詢(xún)這些API 。事實(shí)上,如果你知道你將會(huì )使用JMX ,你可以在你的應用中構建JMX 組件,然后將它們暴露在JMX 管理環(huán)境中。即使你的應用已經(jīng)開(kāi)發(fā)完畢,你仍然可以快速使用JMX 使你的應用變得可管理和可監控。
§         調試選項 — 調試選項像其他資源和屬性一樣是可配置的,一旦通過(guò)JMX 接口被暴露出來(lái),就可以觸發(fā)他們。
§         應用性能 — 使用JMX, 你可以很容易的監控系統中的關(guān)鍵事件。當一個(gè)事件發(fā)生時(shí),JMX 可以將這個(gè)事件通知給提前定義的監聽(tīng)器處理。通過(guò)配置監聽(tīng)器,可以將事件發(fā)送到頁(yè)面或一個(gè)郵件信息等等,處理是完全可定制的。
1.2.1 使用 JMX 的好處
使用基于Java 解決方案的JMX 有很多好處,對于一個(gè)Java 程序員來(lái)說(shuō),一些好處是顯而易見(jiàn)的。例如,Java 是便攜式的語(yǔ)言(write once run anywhere ),因此你可以只關(guān)注你的應用本身而不用考慮平臺相關(guān)性的問(wèn)題。使用JMX 還有以下幾個(gè)更具誘惑力的優(yōu)點(diǎn)。
使用簡(jiǎn)單
相比較于SNMP 這些技術(shù),JMX 具有顯著(zhù)的優(yōu)點(diǎn),具有Java 編程經(jīng)驗的程序員可以很快的掌握JMX 的概念,從而大大提高生產(chǎn)力。而要掌握SNMP ,不僅需要開(kāi)發(fā)者熟悉某種開(kāi)發(fā)語(yǔ)言,并且還需要開(kāi)發(fā)者熟練掌握SNMP 協(xié)議,而SNMP 本身就是很難搞明白的。SNMP 的學(xué)習、解碼、編譯是一個(gè)相對比較漫長(cháng)的過(guò)程。
再者,使用JMX 管理應用是簡(jiǎn)單和直接的(特別是你的應用是用Java 開(kāi)發(fā)的)。開(kāi)發(fā)者秩序很少的幾行代碼就可以使用應用具有被管理的特性。
兼容既存技術(shù)
使用JMX 構建管理系統時(shí),你不需要放棄系統中已經(jīng)存在的管理結構,既存的管理工具可以接入JMX 技術(shù)中。正如前面提到的那樣,JMX 提供了和其他協(xié)議(SNMP 、HTTP 等)通訊的能力,并且可以和其他任何的transport (如Java RMI )互連。如果既存的企業(yè)設備和應用沒(méi)有內置管理工具,你仍然可以使用JMX ,通過(guò)構建一個(gè)JMX 代理作為操作中心來(lái)管理這些設備。
組件化
JMX 允許你以組件的形式構建管理系統。你可以選擇暴露整個(gè)設備或應用,或暴露它們的一個(gè)子集。當你將應用發(fā)給客戶(hù)時(shí),那么應用中包含的管理組件將可以直接的插入客戶(hù)的管理套件中。
, 事件 和統計
通過(guò)JMX ,你可以讓?xiě)脤⑺漠斍暗慕】颠\行狀態(tài)以及有用的統計信息報告出來(lái)。使用JMX ,你可以從Web 服務(wù)器或數據庫等資源收集信息。
JMX 提供了一個(gè)通知(notification )機制,它充分發(fā)揮了Java 作為面向對象語(yǔ)言的優(yōu)點(diǎn)。通知機制提供了充足的能力像分發(fā)基本數據那樣分發(fā)Java 對象。管理系統可以發(fā)送一個(gè)既包含數據又包含操作的通知,對熟悉面向對象編程的程序員來(lái)說(shuō),這是一個(gè)很給力的概念,而我們前面討論的那些管理和監控系統并沒(méi)有這個(gè)能力。
使用JMX ,可以發(fā)布數據(警告和系統事件),也可以對感興趣的數據發(fā)送一種機制。比如你可以發(fā)出一個(gè)處理器負載狀態(tài)的通知,這個(gè)信息本身可能對管理系統不是很有用,但是如果發(fā)送一個(gè)對象,它不僅包含這些數據,而且伴隨一個(gè)機制來(lái)提供負載重要度的應用視圖。例如通知可以有一個(gè)方法isLoadCritical() ,它將返回臨界負載的應用概念,那么管理系統就不僅可以基于負載作出決定,并且可以知道應用是否處在負載過(guò)度的狀況。
快速監控方案
你可能經(jīng)歷過(guò)這樣的開(kāi)發(fā)過(guò)程,在它里面,很多開(kāi)發(fā)團隊不得不通力合作以提供應用管理和監控的API 。如果使用JMX ,那么每個(gè)團隊只需要為他們自己的應用開(kāi)發(fā)的MBean 負責就可以了。
當應用部署的時(shí)候,只是簡(jiǎn)單將MBean 部署進(jìn)JMX 代理。所有的MBean 在邏輯上來(lái)看是集中管理的,但是其實(shí)他們部署在不同的主機上。通過(guò)一個(gè)單獨的管理工具就可以管理和配置所有的應用。相比較與其他的管理技術(shù),使用JMX 來(lái)提供你的管理方案,可以使開(kāi)發(fā)更容易、具有更強大的管理能力,并且可以從java 本身作為一種面向對象的語(yǔ)言和平臺無(wú)關(guān)性上受益。
1.2.2 JMX 基本術(shù)語(yǔ)
下列的術(shù)語(yǔ)是本書(shū)討論的整個(gè)JMX 的基礎。在這兒定義它們,僅僅是因為下一節我們會(huì )接觸到它們。以后的章節會(huì )涵蓋這些內容,在哪里,你將對他們有一個(gè)更深刻的理解。把它們列在下面僅僅是為了幫助理解下一節的JMX 架構。
可管理資源
一個(gè)可管理資源是一個(gè)可以使用Java 進(jìn)入或可以被Java 包裝的應用、設備或存在的實(shí)體。它通過(guò)JMX 為管理暴露接口。應用可以向JMX 環(huán)境暴露組件、API 或其他的資源以備管理??晒芾碣Y源甚至可以是像打印機那樣的網(wǎng)絡(luò )設備??晒芾碣Y源是一個(gè)通過(guò)JMX MBean 管理的實(shí)體。
MBean (管理構建)是一個(gè)Java 類(lèi),它符合JMX 規范中定義的命名規則,并繼承一些標準的JMX 指令。MBean 實(shí)例就是Java 對象,它為可管理資源暴露管理和侵入接口。MBean 的管理接口由MBean 暴露給管理系統的屬性和操作組成。
管理系統侵入MBean 以訪(fǎng)問(wèn)MBean 的屬性并調用MBean 的操作。本書(shū)涉及三種類(lèi)型的MBean :標準MBean (Standard MBean )、動(dòng)態(tài)MBean (Dynamic MBean )和模型MBean (Model MBean )。每一種MBean 在特定的場(chǎng)合都有自己的優(yōu)勢。MBean 駐留在另一個(gè)JMX 組件——MBean Server 中。
MBean server 是一個(gè)Java 類(lèi),它管理一組MBean 。MBean server 是JMX 管理環(huán)境的中樞,它在查詢(xún)MBean 中扮演注冊表的角色。MBean server 向外暴露所有已經(jīng)在它上注冊的MBean 的接口,但是不會(huì )暴露這些MBean 對象的應用。此外,MBean server 向用戶(hù)提供一致的接口,而無(wú)論侵入的MBean 是那種類(lèi)型,它平等的對待所有的MBean 。MBean server 同時(shí)提供查詢(xún)MBean 的方法和注冊通知事件的方法。
代理( JMX agent )
JMX 代理是一個(gè)Java 進(jìn)程,它提供一組用于管理MBean 的服務(wù),它是一個(gè)MBean Server 容器。JMX 提供的服務(wù)包括:創(chuàng )建MBean 關(guān)系服務(wù)、動(dòng)態(tài)加載類(lèi)服務(wù)、簡(jiǎn)單監控服務(wù)和時(shí)間服務(wù)。
JMX 代理?yè)碛幸唤M協(xié)議適配器和連接器,通過(guò)它們,遠端的不同的客戶(hù)端就可以使用JMX 代理。協(xié)議適配器和連接器是Java 類(lèi),通常是MBean ,可以在內部映射一個(gè)外部協(xié)議(如HTTP 或者SNMP ),或者將代理暴露給遠程的連接(像RMI 或JNDI ),這些意味著(zhù)可以通過(guò)不同的管理協(xié)議和工具來(lái)使用JMX 代理。
協(xié)議適配器和連接器駐留在JMX 代理中,它們將代理暴露給管理應用和協(xié)議。例如SNMP 可以使用SNMP 適配器將自己映射到JMX 代理。另外,JMX 代理還可以有一個(gè)RMI 連接器,以備使用RMI 客戶(hù)端進(jìn)行管理。協(xié)議適配器由代理端的一個(gè)單獨對象組成,而連接器則由代理端和客戶(hù)端的對象一同組成。
一個(gè)代理可以有任意數量的適配器和連接器,從而可以使用新工具或已存在的協(xié)議和應用來(lái)連接代理。這樣不僅僅代理具有可擴展性,而且有了一種跨網(wǎng)絡(luò )的分布式代理機制。
管理應用是任何用于連接到JMX 代理接口的用戶(hù)程序。JMX 代理可以和那些特意設計以使用JMX 技術(shù)的應用以及設計時(shí)沒(méi)有此方面考慮的應用一起工作。JMX 兼容的管理應用可以從JMX 高級特性中得到好處。通過(guò)對代理定制適配器和連接器就可以和一個(gè)既存的(非JMX )管理系統交互。例如SNMP 管理系統可以通過(guò)創(chuàng )建一個(gè)SNMP 適配器,就可以和JMX 交互了。本書(shū)的以后章節,我們會(huì )涉及到RMI 、JNDI 、TCP 的連接器和適配器。
( Notification )
通知是Java 對象,由MBean 和MBeanServer 發(fā)送,包裝了時(shí)間、通知和一般的信息。其他的MBean 或Java 對象可以注冊一個(gè)監聽(tīng)器以接受通知。實(shí)際上,正如你后面在第6 章看到的那樣,JMX 通知和Java 事件模型是類(lèi)似的。
指令是通過(guò)MBean 暴露的可管理資源的一個(gè)處理過(guò)程。指令的開(kāi)發(fā)可以伴隨應用的開(kāi)發(fā),或者開(kāi)發(fā)者可以使用正在使用的系統的API 創(chuàng )建MBean 。隨后你會(huì )發(fā)現,通過(guò)選擇合適的MBean 類(lèi)型,可以很容易的只暴露應用和資源的一部分。
JMX 架構
J MX 架構是基于組件的,以構建靈活和可用的管理系統,這是通過(guò)為代理提供一個(gè)機制(MBean )以讓不同的協(xié)議和不同的機制可是到達。本節通過(guò)將JMX 結構分為三個(gè)主要層:設備層(instrumentation )、代理層(agent )、分布層(distributed ),通過(guò)使用一個(gè)簡(jiǎn)單的例子討論每一層。表1.1 列出了各層和其簡(jiǎn)單介紹:
1.1 JMX 三層架構
描述
分布層
( Distributed layer )
包含使管理系統和 JMX 代理通信的組件
代理層
( Agent layer )
包括代理和 MBean 服務(wù)器
指令層
( Instrumentation layer )
包括代表可管理資源的 MBean
每層都包括了一些我們已近討論過(guò)的組件,但是你需要知道他們是怎么相互協(xié)作的。
1.3.1 例子:管理自行車(chē)商店服務(wù)器
為了更好的理解每一層以及把它們聯(lián)系起來(lái),我們會(huì )看一個(gè)簡(jiǎn)單的用例。假設自行車(chē)商店有一個(gè)服務(wù)器端的應用,由它來(lái)管理庫存和供貨商。這個(gè)應用會(huì )定期的跟蹤銷(xiāo)售、庫存、訂單,通過(guò)配置,可以使用不同的訂單的格式、日志級別、調度基準等。因為應用對于業(yè)務(wù)是至關(guān)重要的,它需要在不宕機的情況下進(jìn)行不同的配置。
就像很多類(lèi)似情況一樣,你可能希望有一個(gè)控制臺,通過(guò)它你可以連接到應用來(lái)改變日志級別、校驗流程或者存儲位置。然而,一個(gè)業(yè)務(wù)可能有很多這樣的應用,每一個(gè)都有自己的配置和管理工具,這種情況下,你不得不針對每一個(gè)應用,用它們自己的工具進(jìn)行配置。作為整體管理這樣一個(gè)系統是一件很郁悶的事情,就如圖1.1 所示的那樣。
一個(gè)有許多應用的環(huán)境,每一個(gè)都有自己的一套配置和管理工具
相反的,讓我們從JMX 的視角來(lái)考慮這種場(chǎng)景。JMX 怎樣使這哦異構管理系統更好的工作?首先使用MBean 對每個(gè)應用的管理接口建模,接著(zhù)在JMX 代理中暴露這樣MBean ,JMX 代理可以使用任何既存的協(xié)議,然后就可以通過(guò)一個(gè)統一的入口來(lái)控制應用。從用戶(hù)的角度來(lái)看,是一個(gè)單獨的管理應用,而不是一堆截然不同的管理組件。這種方式對應用套件的管理提供了一個(gè)一致并且健壯的解決方案。圖1.2 說(shuō)明了這個(gè)新的環(huán)境。
_
一個(gè)包含很多需要管理的應用,每一個(gè)都被自己的 MBean 表示。虛線(xiàn)框劃分了 JMX 的三層架構
然我們看一個(gè)典型的數據存儲應用的配置例子,假如用戶(hù)需要改變應用的日志級別,需要以下步驟:
1.1              用戶(hù)打開(kāi)他喜歡的管理工具并連接到JMX 代理。
2.1              然后找到表示這個(gè)應用的那個(gè)MBean ,修改合適的日志級別。
3.1              然后MBean 會(huì )自動(dòng)和應用交互以配置它的日志級別。
以下的幾節通過(guò)討論以上每步中發(fā)生了那些事來(lái)進(jìn)一部理解JMX 的各層。第一層是分布層。
1.3.2 分布層
分布層是JMX 架構的最外一層,分布層負責使JMX 代理對外部世界可用。有兩種類(lèi)型的分布式交互。第一種類(lèi)型由適配器來(lái)實(shí)現,它通過(guò)HTTP 和SNMP 一類(lèi)的協(xié)議提供了MBean 的可見(jiàn)性。第二種類(lèi)型是連接器,它將代理的API 暴露給其他的分布式技術(shù),如Java RMI 。事實(shí)上如下圖3.1 所示,一個(gè)代理可以同時(shí)允許不同的技術(shù)在一起工作。適配器和連接器在JMX 環(huán)境中提供的是相同的作用,在寫(xiě)本書(shū)的時(shí)候,它們被分為兩種類(lèi)型,但是計劃在下一個(gè)JMX 發(fā)行版時(shí)將它們統一稱(chēng)為適配器。
_
圖 1.3 JMX 代理和適配器、連接器
前面的例子中的第一步:用戶(hù)使用一個(gè)他們喜歡的工具連到JMX 代理,通過(guò)的就是這一層。JMX 代理包含可以管理自行車(chē)商店應用的MBean ,在分布式層,它包含了可使客戶(hù)端通過(guò)瀏覽器、Java RMI 或SNMP 連到代理的組件(適配器和連接器)。如上圖所示,用戶(hù)的工具可以是JMX 兼容的工具或使用其他技術(shù)或協(xié)議的工具。
一旦連接到了代理,用戶(hù)就可以使用管理工具和代理中的MBean 進(jìn)行交互了。接下來(lái),就進(jìn)入代理層了。
1.3.3 代理層
代理層主要的組件是MBean 服務(wù)器,MBean 服務(wù)器供MBean 注冊使用,它是JMX 代理的核心。同時(shí)代理層還提供四種可以更容易的管理MBean 的代理服務(wù):時(shí)間服務(wù)、監視服務(wù)、動(dòng)態(tài)MBean 裝載服務(wù)和關(guān)系服務(wù)。
代理層提供侵入可管理資源的方式。JMX 代理可以運行在資源所在主機的JVM 上,也可以運行在遠程的機器上。代理層不需要知道它所暴露的資源或那些使用MBean 的管理應用,它只提供一個(gè)服務(wù),用來(lái)處理MBean ,以及通過(guò)連接器或適配器暴露的一系列的協(xié)議來(lái)操縱MBean 。
_
MBean 服務(wù)器和代理服務(wù)
第二步,用戶(hù)找到了管理自行車(chē)商店應用配置的MBean ,之后,用戶(hù)調用MBean 暴露的用以配置日志級別的操作,在這刻涉及到MBean 了,就進(jìn)入了指令層。
1.3.4 指令層
指令層是最接近管理資源的一層,它由代理中注冊的MBean 構成。MBean 使得資源可以通過(guò)代理來(lái)被管理。每一個(gè)Mbean 暴露底層管理資源的一部分配置或是一個(gè)功能,它以Java 對象的方式提供了對資源的管理。如果資源本身不是使用Java 的,MBean 就扮演了從代理到資源之間的一個(gè)轉換器。
例如,如果有一個(gè)舊的應用,它通過(guò)查詢(xún)數據表來(lái)進(jìn)行管理,那么你可以構建一個(gè)MBean ,它通過(guò)JDBC 去數據讀取數據或改變數據。應用不需要擔心底層技術(shù)的構建,因為MBean 對他們進(jìn)行了抽象。
MBean 是一個(gè)輕量級的對象,它知道怎么去使用、請求和操作它對應的資源,從而對代理和用戶(hù)提供了侵入資源的能力。圖1.5 展示了MBean 和資源的直接交互。
_ _
MBean 和它對應的資源的交互
如果你愿意,你可以構建一個(gè)MBean ,來(lái)管理一籮筐的應用,就像一個(gè)管理單元那樣,這樣就可以通過(guò)一次調用設置所有應用的日志級別了。例如你想改變數據庫和應用的日志級別為調試模式,可以使用Mbean 來(lái)調用一個(gè)單獨的應用去設置調試級別。即使和不同應用通信的底層技術(shù)是不同的,Mbean 也可以從管理系統抽象出,不同的技術(shù)將作為一個(gè)聚集單元出現。
1.3.5 通知
例如自行車(chē)商店應用可以具備在交易處在一個(gè)錯誤的狀態(tài)時(shí)收到通知的能力。對于錯誤的交易,應用可以將一個(gè)事件push 進(jìn)它MBean ,Mbean 可以發(fā)送通知給感興趣的客戶(hù)端。
使用 JMX 作為一個(gè)應用架構
JMX 代理層用于構建應用是一個(gè)理想的工具,Mbean 服務(wù)器可以作為應用組件的骨架,應用如數據層、日子組件或者事務(wù)管理者之類(lèi)的。通過(guò)將應用組件定義為MBean ,可以將應用的其他部分從組件的實(shí)現細節隔離開(kāi)來(lái),圖1.6 說(shuō)明了這個(gè)概念。
_ _
使用 MBean 構建應用
通過(guò)這種方式使用JMX ,以及通過(guò)定義對組件的MBean 定義接口,就可以很容易的創(chuàng )建應用來(lái)替換不同的組件實(shí)現??梢院苋菀椎耐ㄟ^(guò)注冊一個(gè)新的MBean 來(lái)添加一個(gè)新組件。
1.5 JMX 的使用
如果你擔心使用一個(gè)新的管理框架是不是會(huì )被接受,本節可以使你消除這中擔心。JMX 雖然是一個(gè)新技術(shù),但是它已近被廣泛的接受,用于配置應用服務(wù)器和構建管理工具。表1.2 列出了一些使用JMX 產(chǎn)品。
使用 JMX 的產(chǎn)品
Product
Company
Description
WebLogic Application Server
BEA Systems
用于監視運行在服務(wù)器中的 J2EE 服務(wù)
JBoss Application Server
JBoss
用于應用服務(wù)器架構和監視運行在服務(wù)器中的服務(wù)
Bluestone Application Server
Hewlett-Packard
用于配置應用服務(wù)器
OpenView
Hewlett-Packard
監視組件
Adventnet Manager
Adventnet
基于 JMX 的監視解決方案
JDMK (Java Dynamic Management Kit)
Sun Microsystems
構建 JMX 產(chǎn)品的開(kāi)發(fā)組件集
Tivoli JMX
IBM
IBM 的 JMX 實(shí)現
本表只列出了開(kāi)始使用JMX 的產(chǎn)品的一部分,隨著(zhù)J2EE 平臺的越來(lái)越廣泛的接受,JMX 將會(huì )成為管理解決方案的標準。
Java 管理擴展(JMX )API 現在是J2EE 平臺的一個(gè)擴展。但是根據JSR000174 ,JMX 會(huì )成為J2SE 下一個(gè)版本的一部分。選擇使用JMX 開(kāi)發(fā)應用,可以在Java 社區得到足夠的支持。不僅Sun 提供了一個(gè)JMX 的實(shí)現,IBM 也提供了一個(gè)實(shí)現。
需要應用服務(wù)器的開(kāi)發(fā)商也在他們的產(chǎn)品內建對JMX 的直接支持。使用JBoss 或WebLogic 一類(lèi)的應用服務(wù)器,可以在你的應用運行時(shí)得到JMX 的支持。即使你的應用服務(wù)器不支持JMX ,你也可以直接在你的應用中包含一個(gè)JMX 代理。在本書(shū)中,你將會(huì )看到這方面的例子。
1.7 總結
到現在為止,你應該對資源管理的概念有一個(gè)基本的了解了,我們比較理想的資源管理和當前的資源管理,并且推薦了一個(gè)組合的可以在現實(shí)中實(shí)現管理方式。
JMX 提供了必須的服務(wù)以構建推薦的管理系統,它通過(guò)三層:指令層、代理層和分布層來(lái)提供提供這些服務(wù)。三層架構使得JMX 可以為任何管理環(huán)境提供一個(gè)可擴展的、靈活的管理系統
第二章通過(guò)一個(gè)典型的Hello World 例子開(kāi)始JMX 學(xué)習之旅,你會(huì )創(chuàng )建一個(gè)簡(jiǎn)單的JMX 代理和第一個(gè)MBean 。
分享到:
上一篇:cn.leisore.annotations--書(shū)籍信息注解工具
下一篇:JMX IN ACTION---第二章
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
JMX規范
第三章構建一個(gè)基礎程序
Java?管理擴展(JMX)(Zz)
JMX簡(jiǎn)介
[JMX一步步來(lái)] 2、JMX簡(jiǎn)介
jboss的目錄結構
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久