Základný úvod do JMX
1. Úvod
The Rámec Java Management Extensions (JMX) bol predstavený v prostredí Java 1.5 a od svojho vzniku si našiel široké prijatie v komunite vývojárov Java.
Poskytuje ľahko konfigurovateľnú, škálovateľnú, spoľahlivú a viac či menej priateľskú infraštruktúru na miestnu alebo vzdialenú správu aplikácií Java. Rámec zavádza koncept MBeans pre správu aplikácií v reálnom čase.
Tento článok je návodom krok za krokom pre začiatočníkov, ako vytvoriť a nastaviť základný MBean a spravovať ho prostredníctvom JConsole.
2. Architektúra JMX
Architektúra JMX sleduje trojvrstvový prístup:
- Prístrojová vrstva: MBeans zaregistrované u agenta JMX, prostredníctvom ktorého sú spravované prostriedky
- Vrstva agenta JMX: hlavný komponent (MbeanServer), ktorý udržuje register spravovaných MBeanov a poskytuje rozhranie na prístup k nim
- Vrstva vzdialenej správy: zvyčajne nástroj na strane klienta ako JConsole
3. Vytvára sa trieda MBean
Pri vytváraní MBeans existuje určitý návrhový vzor, ktorému sa musíme prispôsobiť. Model MBean class MUSÍ implementovať rozhranie s nasledujúcim názvom: „Názov triedy modelu“ plus MBean.
Definujme teda naše rozhranie MBean a triedu, ktorá ho implementuje:
verejné rozhranie GameMBean {public void playFootball (String clubName); public String getPlayerName (); public void setPlayerName (String playerName); } verejná trieda Hra implementuje GameMBean {private String playerName; @Override public void playFootball (reťazec clubName) {System.out.println (this.playerName + "hrá futbal za" + clubName); } @Override public String getPlayerName () {System.out.println ("Return playerName" + this.playerName); vrátiť meno hráča; } @Override public void setPlayerName (reťazec playerName) {System.out.println ("Nastaviť meno hráča na hodnotu" + playerName); this.playerName = playerName; }}
The Hra trieda prepíše metódu Hraj futbal() nadradeného rozhrania. Okrem toho má trieda členskú premennú meno hráča a getter / setter za to.
Upozorňujeme, že getter / setter je deklarovaný aj v nadradenom rozhraní.
4. Prístrojové vybavenie s agentom JMX
Agenti JMX sú subjekty bežiace lokálne alebo vzdialene, ktoré poskytujú prístup na správu k MBeanom registrovaným u nich.
Poďme použiť PlatformMbeanServer - hlavná súčasť agenta JMX a zaregistrovať Hra MBean s tým.
Použijeme inú entitu - ObjectName - zaregistrovať Hra inštancia triedy s PlatformMbeanServer; toto je reťazec pozostávajúci z dvoch častí:
- doména: môže to byť ľubovoľný reťazec, ale podľa konvencií pomenovania MBean by mal mať názov balíka Java (vyhýba sa konfliktom názvov)
- kľúč: zoznam „kľúč = hodnota”Páry oddelené čiarkou
V tomto príklade použijeme: „Com.baledung.tutorial: type = basic, name = game“. Dostaneme MBeanServer z továrenskej triedy java.lang.management.ManagementFactory. Potom zaregistrujeme model MBean pomocou vytvoreného Názov objektu: Na záver len aby sme to mohli vyskúšať - pridáme a zatiaľ čo slučka, ktorá zabráni ukončeniu aplikácie skôr, ako budeme mať prístup k MBean cez JConsole: Tu je rýchly pohľad na časť procesu JConsole: Základy správy MBean sú jednoduché: Pozrime sa, čo to znamená pre Hra MBean v praxi: V konzole Eclipse sa zobrazí nasledujúci denník: Nastavte meno hráča na hodnotu Messi V konzole zatmenia sa objaví nasledujúci denník: Messi hrá futbal za Barcelonu Tento výukový program sa zameral na základy nastavenia aplikácie s povoleným JMX pomocou MBeans. Diskutovalo sa tiež o použití typického nástroja na strane klienta, ako je JConsole, na správu inštrumentovaného MBeanu. Doména technológie JMX má veľmi široký rozsah a dosah. Tento tutoriál možno považovať za krok začiatočníka k tomu. Zdrojový kód tohto tutoriálu nájdete na Github.try {ObjectName objectName = new ObjectName ("com.baeldung.tutorial: type = basic, name = game"); MBeanServer server = ManagementFactory.getPlatformMBeanServer (); server.registerMBean (nová hra (), názov objektu); } chytit (MalformedObjectNameException | InstanceAlreadyExistsException | MBeanRegistrationException | NotCompliantMBeanException e) {// zvládnuť výnimky}
while (true) {}
5. Prístup k MBean
5.1. Pripojenie zo strany klienta
5.2. Správa MBean
6. Záver