我正在閱讀關於JMX的第一次,並試圖查看它是否可行,以解決我們生產中遇到的問題。JMX遠程部署體系結構
我們有一個架構,不斷打遠程Web服務(由不同的團隊在自己的服務器上託管),並要求從它的數據(我們也緩存從這項服務,但它是一個棘手的問題,其中的緩存ISN非常有效)。
我們希望的能力在代碼中的一個特定點動態地打開/關閉記錄,就在我們打開Web服務之前,我們可以看到我們發送給Web服務的確切URL /查詢服務。如果我們只是盲目設置日誌記錄級別並記錄所有Web服務請求,我們就會有天文數字大的日誌文件。
JMX似乎是解決方案,我們用託管bean來控制本節中的日誌記錄,然後可以通過某個管理器(可能只是基本的HTML適配器)遠程設置該bean的狀態(setLoggingEnabled(boolean)
等)。
我的問題是所有部署相關:
- 如果我寫的MBean接口並實現了一套,以及代理(其中註冊的MBean,並與平臺MBean服務器HTML適配器),做我編譯,包&在我的主Web應用程序(WAR)中部署這些應用程序,還是必須編譯爲自己的應用程序,例如JAR,並且位於應用程序旁邊的JVM上?
- 我們有Dev,QA,Demo和Prod envrionment;是否有可能有1個單一的HTML適配器指向一個MBean服務器,它有不同的MBean註冊,每個環境1個?如果有一個URL可以到達可以在不同環境中管理bean的地方,那將是非常不錯的。
- 如果我上面第一個問題的答案是MBean接口,impl和agent全部部署在應用程序內部,那麼是否有可能讓您的JMX應用程序部署在一臺服務器上(比如說Demo),但要從另一臺服務器上監控它?
在此先感謝!
爲了響應你的第一個項目,不管我們設置log4j的日誌級別是什麼,當它登錄時,它會記錄數十萬條,數百萬條消息 - 太多我們無法處理的,所以日誌級別-based解決方案不適用於我們的情況 – IAmYourFaja 2012-04-12 14:22:59
作爲對第二項的迴應,假設我們在blah.example.com上有一個演示服務器。該服務器正在運行Tomcat,其中部署了我們的WAR文件(Web應用程序)。現在讓我們假設我們將WAR的託管bean配置爲使用HTML適配器,以便我們可以通過Web URL對它們進行監聽/管理。該URL是否會關閉blah.example.com,或者我們可以將JMX的監控設置爲從第二臺服務器提供,如fizz.example.com? – IAmYourFaja 2012-04-12 14:24:59