A JMX alapvető bemutatása

1. Bemutatkozás

A Java Management Extensions (JMX) keretrendszer a Java 1.5-ben vezették be, és a kezdetek óta széles körben elfogadott a Java fejlesztői közösségben.

Könnyen konfigurálható, méretezhető, megbízható és többé-kevésbé barátságos infrastruktúrát biztosít a Java alkalmazások helyi vagy távoli kezeléséhez. A keretrendszer bevezeti az MBeans koncepcióját az alkalmazások valós idejű kezelésére.

Ez a cikk kezdő lépésről lépésre ismerteti az alap MBean létrehozását és beállítását, valamint a JConsole segítségével történő kezelését.

2. JMX Architecture

A JMX architektúra háromrétegű megközelítést követ:

  1. Instrumentációs réteg: A JMX ügynöknél regisztrált MBeans, amelyen keresztül az erőforrásokat kezelik
  2. JMX ügynök réteg: az alapkomponens (MbeanServer), amely karbantartja a kezelt MBeanok nyilvántartását és interfészt biztosít az ezekhez való hozzáféréshez
  3. Távoli felügyeleti réteg: általában ügyféloldali eszköz, mint például a JConsole

3. MBean osztály létrehozása

Az MBeans készítése közben van egy sajátos tervezési minta, amelynek meg kell felelnie. Az MBean osztály modelljének KÖTELEZŐ interfészt kell létrehoznia a következő névvel: „Modellosztály neve” plusz MBean.

Tehát definiáljuk az MBean felületünket és az azt megvalósító osztályt:

nyilvános felület GameMBean {public void playFootball (String clubName); public String getPlayerName (); public void setPlayerName (karakterlánc-lejátszóNév); } public class Game megvalósítja a GameMBean {private String playerName; @Orride public void playFootball (String clubName) {System.out.println (this.playerName + "focizni a" + clubName számára); } @Orride public String getPlayerName () {System.out.println ("Return playerName" + this.playerName); return playerName; } @Orride public void setPlayerName (String playerName) {System.out.println ("A PlayerName beállítása értékre" + playerName); this.playerName = játékosNév; }}

A Játszma, meccs osztály felülír egy módszert focizni() a szülői felület. Ettől eltekintve az osztály tagváltozóval rendelkezik játékos neve és getter / setter érte.

Vegye figyelembe, hogy a getter / setter a szülői felületen is deklarálva van.

4. Hangszerelés a JMX ügynökkel

A JMX ügynökök a lokálisan vagy távolról futó entitások, amelyek kezelési hozzáférést biztosítanak a náluk regisztrált MBeans-hoz.

Használjuk PlatformMbeanServer - a JMX ügynök központi összetevője, és regisztrálja a Játszma, meccs MBean vele.

Más entitást fogunk használni - ObjectName - regisztrálni a Játszma, meccs osztálypéldány a PlatformMbeanServer; ez egy String, amely két részből áll:

  • tartomány: tetszőleges karakterlánc lehet, de az MBean elnevezési megállapodások szerint Java csomagnévvel kell rendelkeznie (elkerüli a névadási ütközéseket)
  • kulcs: a „kulcs = érték”Vesszővel elválasztott párok

Ebben a példában a következőket fogjuk használni: “Com.baledung.tutorial: type = basic, name = game”.

Megkapjuk a MBeanServer a gyári osztályból java.lang.management.ManagementFactory.

Ezután a létrehozott segítségével regisztráljuk az MBean modellt ObjectName:

próbálja meg az {ObjectName objectName = new ObjectName ("com.baeldung.tutorial: type = basic, name = game"); MBeanServer szerver = ManagementFactory.getPlatformMBeanServer (); server.registerMBean (új játék (), objectName); } catch (MalformedObjectNameException | példányAlreadyExistsException | MBeanRegistrationException | NotCompliantMBeanException e) {// kezelni a kivételeket}

Végül csak azért, hogy kipróbálhassuk - hozzáadunk egy míg ciklus az alkalmazás leállításának megakadályozásához, mielőtt hozzáférhetünk az MBean-hoz a JConsole-on keresztül:

míg (igaz) {}

5. Az MBean elérése

5.1. Csatlakozás az ügyfél oldalról

  1. Indítsa el az alkalmazást az Eclipse alkalmazásban
  2. Indítsa el a Jconsole alkalmazást (amely a gép JDK telepítési könyvtárának bin mappájában található)
  3. Csatlakozás -> új kapcsolat -> válassza ki az oktatóanyag helyi Java folyamatát -> Csatlakozás -> Biztonságos SSl-kapcsolat figyelmeztetés -> Folytatás nem biztonságos kapcsolattal
  4. A kapcsolat létrejötte után kattintson a Nézet ablaktábla jobb felső sarkában található MBeans fülre
  5. A regisztrált MB-ok listája a bal oszlopban jelenik meg
  6. Kattintson a com.baeldung.tutorial -> basic -> game elemre
  7. A játék alatt két sor lesz, egy-egy az attribútumokra és a műveletekre

Itt van egy rövid áttekintés a folyamat JConsole részéről:

5.2. Az MBean kezelése

Az MBean kezelés alapjai egyszerűek:

  • Az attribútumok olvashatók vagy írhatók
  • A módszerekre lehet hivatkozni, és argumentumokat lehet hozzájuk juttatni, vagy értékeket lehet visszaadni belőlük

Lássuk, mit jelent ez a Játszma, meccs MBean a gyakorlatban:

  • tulajdonság: írja be az attribútum új értékét játékos neve - például „Messi” és kattintson Frissítés gomb

A következő napló jelenik meg az Eclipse konzolban:

Állítsa a playerName értékét Messi értékére

  • tevékenységek: írja be a metódus String argumentumának értékét focizni() - például „Barcelona” és kattintson a módszer gombra. A ablak figyelmeztetés a sikeres meghíváshoz meg fog jelenni

A következő napló jelenik meg a napfogyatkozás-konzolon:

Messi focizik a Barcelonában

6. Következtetés

Ez az oktatóanyag egy JMX-kompatibilis alkalmazás MBeans használatával történő beállításának alapjait érintette. Megvitatta egy tipikus kliensoldali eszköz, például a JConsole használatát is az instrumentált MBean kezeléséhez.

A JMX technológia hatóköre és hatóköre nagyon széles. Ez a bemutató kezdő lépésnek tekinthető.

Az oktatóanyag forráskódja megtalálható a Github oldalon.