Osnovni uvod u JMX
1. Uvod
The Okvir Java Management Extensions (JMX) uveden je u Javi 1.5 i našao je široko prihvaćeno u zajednici programera Java od svog osnutka.
Pruža lako konfigurabilnu, skalabilnu, pouzdanu i više ili manje prijateljsku infrastrukturu za upravljanje Java aplikacijom bilo lokalno ili udaljeno. Okvir uvodi koncept MBeans za upravljanje aplikacijama u stvarnom vremenu.
Ovaj je članak detaljni vodič za početnike za stvaranje i postavljanje osnovnog MBeana i upravljanje njime putem JConsole-a.
2. JMX arhitektura
JMX arhitektura slijedi troslojni pristup:
- Sloj instrumentacije: MBeans registrirani kod JMX agenta putem kojeg se upravlja resursima
- JMX agent sloj: temeljna komponenta (MbeanServer) koja održava registar upravljanih MBeana i pruža sučelje za pristup njima
- Sloj daljinskog upravljanja: obično alat na strani klijenta poput JConsole
3. Stvaranje MBean klase
Dok stvaramo MBeans, postoji određeni obrazac dizajna kojem se moramo prilagoditi. Klasa modela MBean MORA implementirati sučelje sa sljedećim imenom: “Naziv klase modela” plus MBean.
Pa definirajmo naše MBean sučelje i klasu koja ga implementira:
javno sučelje GameMBean {public void playFootball (String clubName); javni String getPlayerName (); javna praznina setPlayerName (Niz igračaName); } igra javne klase implementira GameMBean {private String playerName; @Override public void playFootball (String clubName) {System.out.println (this.playerName + "igranje nogometa za" + clubName); } @Override javni niz getPlayerName () {System.out.println ("Vrati ime igrača" + this.playerName); povrat igračaName; } @Override public void setPlayerName (StringNameName) {System.out.println ("Postavi playerName na vrijednost" + playerName); this.playerName = ImeName; }}
The igra klasa nadjačava metodu igrati nogomet() nadređenog sučelja. Osim toga, klasa ima varijablu člana igračevo ime i geter / postavljač za to.
Imajte na umu da su getter / setter također deklarirani u nadređenom sučelju.
4. Instrumentiranje s JMX agentom
JMX agenti su entiteti koji se izvode lokalno ili daljinski i koji pružaju pristup za upravljanje MBeansima registriranim kod njih.
Iskoristimo PlatformMbeanServer - glavna komponenta JMX agenta i registrirajte igra Učini s tim.
Koristit ćemo drugi entitet - ObjectName - za registraciju igra instanca klase s PlatformMbeanServer; ovo je niz koji se sastoji od dva dijela:
- domena: može biti proizvoljan niz, ali prema MBean konvencijama imenovanja, trebao bi imati naziv Java paketa (izbjegava sukobe imenovanja)
- ključ: popis “ključ = vrijednost”Parovi odvojeni zarezom
U ovom ćemo primjeru koristiti: “Com.baledung.tutorial: type = basic, name = game”. Dobit ćemo MBeanServer iz tvorničke klase java.lang.management.ManagementFactory. Tada ćemo registrirati model MBean koristeći stvoreni ObjectName: Napokon, samo da bismo to mogli testirati - dodati ćemo dok petlja da spriječi završavanje aplikacije prije nego što pristupimo MBeanu putem JConsole: Evo kratkog pogleda na dio postupka JConsole: Osnove upravljanja MBean-om su jednostavne: Pogledajmo što to znači za igra MBean u praksi: Sljedeći zapisnik pojavit će se u konzoli Eclipse: Postavite playerName na vrijednost Messija Na konzoli eclipse pojavit će se sljedeći zapisnik: Messi igra nogomet za Barcelonu Ovaj se vodič dotaknuo osnova postavljanja aplikacije s omogućenim JMX-om pomoću MBeansa. Također, raspravljalo se o korištenju tipičnog alata na strani klijenta poput JConsole za upravljanje instrumentiranim MBeanom. Domena JMX tehnologije vrlo je širokog opsega i dosega. Ovaj se vodič može smatrati početničkim korakom prema tome. Izvorni kod ovog vodiča možete pronaći na Githubu.isprobajte {ObjectName objectName = new ObjectName ("com.baeldung.tutorial: type = basic, name = game"); MBeanServer poslužitelj = ManagementFactory.getPlatformMBeanServer (); server.registerMBean (nova igra (), objectName); } catch (MalformedObjectNameException | InstanceAlreadyExistsException | MBeanRegistrationException | NotCompliantMBeanException e) {// obradi iznimke}
dok (istina) {}
5. Pristup MBeanu
5.1. Povezivanje sa strane klijenta
5.2. Upravljanje MBeanom
6. Zaključak