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:

  1. Prístrojová vrstva: MBeans zaregistrované u agenta JMX, prostredníctvom ktorého sú spravované prostriedky
  2. Vrstva agenta JMX: hlavný komponent (MbeanServer), ktorý udržuje register spravovaných MBeanov a poskytuje rozhranie na prístup k nim
  3. 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:

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}

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:

while (true) {}

5. Prístup k MBean

5.1. Pripojenie zo strany klienta

  1. Spustite aplikáciu v Eclipse
  2. Spustite Jconsole (nachádza sa v priečinku bin v inštalačnom adresári JDK vášho počítača)
  3. Pripojenie -> nové pripojenie -> vyberte miestny proces Java v tomto výučbe -> Pripojiť -> Upozornenie na nezabezpečené pripojenie SSl -> Pokračovať v nezabezpečenom pripojení
  4. Po vytvorení pripojenia kliknite na kartu Beans vpravo hore na table Zobraziť
  5. Zoznam registrovaných MBeanov sa zobrazí v ľavom stĺpci
  6. Kliknite na com.baeldung.tutorial -> základné -> hra
  7. V hre budú dva riadky, každý pre atribúty a operácie

Tu je rýchly pohľad na časť procesu JConsole:

5.2. Správa MBean

Základy správy MBean sú jednoduché:

  • Atribúty možno čítať alebo písať
  • Je možné vyvolať metódy a poskytnúť im argumenty alebo z nich vrátiť hodnoty

Pozrime sa, čo to znamená pre Hra MBean v praxi:

  • atribút: zadajte novú hodnotu pre atribút meno hráča - napríklad „Messi“ a kliknite Tlačidlo Obnoviť

V konzole Eclipse sa zobrazí nasledujúci denník:

Nastavte meno hráča na hodnotu Messi

  • operácie: zadajte hodnotu pre argument String metódy Hraj futbal() - napríklad „Barcelona“ a kliknite na tlačidlo metódy. A okno upozornenie na úspešné vyvolanie objaví sa

V konzole zatmenia sa objaví nasledujúci denník:

Messi hrá futbal za Barcelonu

6. Záver

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.


$config[zx-auto] not found$config[zx-overlay] not found