在什么场景下该使用JMX,如何使用,会带来什么好处,这种场景下有哪些替代方案?...
生活随笔
收集整理的這篇文章主要介紹了
在什么场景下该使用JMX,如何使用,会带来什么好处,这种场景下有哪些替代方案?...
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
為什么80%的碼農都做不了架構師?>>> ??
一個大系統中,各內部模塊系統之間的基于接口方式的互相調用和管理,使用jmx是最佳方案.?帶來的好處是? 1.面向接口,遠程調用對于開發人員是透明的,模塊在調用jmx接口時,與調用本地方法幾乎相同.?
2.可視化的管理界面,通過Jconsole等jmx客戶端,可以實時監控系統,并且可實時調用方法進行某些操作.
典型應用場景: ?
某聊天系統,一臺服務器作為 ? 在線用戶列表服務器 ? A1,n臺服務器為用戶提供聊天業務處理 ? N1 ? ,N2,N3...,? 一臺服務器作為后臺管理系統A2. ?
系統管理員現在進行下面這樣一個操作,察看某用戶是否在線,找到該用戶,發現其在線,則將該用戶加入黑名單,并踢下線.?
對應的jmx接口可以由以下幾個: ? A1為A2提供查詢在線用戶jmx接口,加入黑名單接口,kickout接口,? A1為N1..等服務器提供以下接口: 注冊業務服務器,添加在線用戶.查找黑名單用戶? N1...到N3為A1提供kickout接口.?
因此在上面的踢下線操作,則由用戶在A2的web界面發出,交由A1執行,A1記錄黑名單之后,再找到用戶所在業務服務器調用N1提供的接口讓用戶下線.?
以上情形是在生產環境下的部署,而在開發工作,則可以將A1,A2,N...N3等功能合并在一個應用中調試. 由于使用的是jmx接口,在本地調試合并之后,可以直接調用應用內部接口方法.?
這樣借助jmx實現的應用模塊的靈活組裝與拆分,使得系統的可以根據負載需要,根據性能情況,靈活的拆分和整合部署分布式的應用.?
替代方案,選擇webservice,xmlrpc等,但是這些都需要手工編寫或用工具生成大量的代碼來輔助完成接口間的java對象序列化 。?
經典jmx案例:?
1. Jboss 使用jmx管理內部的各個service。?
2. 基于java的開源網管軟件Hyperic HQ ,通過jmx與各被管理資源進行通訊和信息采集
JMX是一個管理的框架。?
當我們想使用JMX的時候,就要問,我們的系統當中有需要監控管理的資源或者對象嗎?實事求是一點,我們不能為了想使用一個高端的技術,就歪曲系統的本來面目。?
如果第一個問題是肯定的,接下來就是看這些資源是否有生命周期。?
經典案例:jboss就是將所有可部署的組件作為資源來管理,這些組建都有其生命周期。這個理念甚至延伸到了其系統內部,將其內部的服務作為組件納入到JMX中來,成就了jboss基于jmx的微內核系統。
轉載于:https://my.oschina.net/i33/blog/80671
總結
以上是生活随笔為你收集整理的在什么场景下该使用JMX,如何使用,会带来什么好处,这种场景下有哪些替代方案?...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 虚拟化系列-Windows server
- 下一篇: wifi无线上网技巧