מבוא בסיסי ל- JMX
1. הקדמה
ה מסגרת Java Management Extensions (JMX) הוצג ב- Java 1.5 ומצא הקבלה רחבה בקהילת מפתחי Java מאז הקמתה.
הוא מספק תשתית ניתנת להגדרה, מדרגית, אמינה וידידותית פחות או יותר לניהול יישומי Java באופן מקומי או מרחוק. המסגרת מציגה את הרעיון של MBeans לניהול יישומים בזמן אמת.
מאמר זה מהווה מדריך צעד אחר צעד למתחילים ליצירת והתקנת MBean בסיסי ולניהולו באמצעות JConsole.
2. אדריכלות JMX
ארכיטקטורת JMX נוקטת גישה תלת-שכבתית:
- שכבת מכשור: MBeans שנרשמו בסוכן JMX דרכו מנוהלים משאבים
- שכבת סוכן JMX: רכיב הליבה (MbeanServer) שמנהל רישום של MBeans מנוהלים ומספק ממשק לגישה אליהם
- שכבת ניהול מרחוק: בדרך כלל כלי צד לקוח כמו JConsole
3. יצירת כיתת MBean
בעת יצירת MBeans, קיים דפוס עיצוב מסוים שעלינו לעמוד בו. המודל MBean בכיתה חייב ליישם ממשק עם השם הבא: "שם כיתת מודל" בתוספת MBean.
אז בואו נגדיר את ממשק ה- MBean שלנו ואת המחלקה המיישמת אותו:
ממשק ציבורי GameMBean {public void playFootball (מחרוזת clubName); מחרוזת ציבורית getPlayerName (); חלל ציבורי setPlayerName (מחרוזת נגן שם); } משחק בכיתה ציבורית מיישם את GameMBean {player String playerName; @Override public void playFootball (מחרוזת clubName) {System.out.println (this.playerName + "משחק כדורגל עבור" + clubName); } @Override ציבורי מחרוזת getPlayerName () {System.out.println ("להחזיר נגן שם" + this.playerName); return playerName; } @Override public void setPlayerName (String playerName) {System.out.println ("הגדר שם שחקן לערך" + נגן שם); this.playerName = נגן שם; }}
ה מִשְׂחָק מחלקה עוקפת שיטה לשחק כדורגל() של ממשק ההורה. מלבד זאת, בכיתה יש משתנה חבר שם שחקן וגטר / קובע על זה.
שים לב ש- getter / setter מוכרזים גם בממשק האב.
4. מכשור עם סוכן JMX
סוכני JMX הם הגופים הפועלים באופן מקומי או מרחוק, ומספקים גישה להנהלה לאמצעי ה- MB הרשומים אצלם.
בואו נשתמש PlatformMbeanServer - מרכיב הליבה של סוכן JMX ורשום את מִשְׂחָק MBean עם זה.
נשתמש בישות אחרת - ObjectName - לרשום את מִשְׂחָק מופע כיתתי עם PlatformMbeanServer; זהו מחרוזת המורכבת משני חלקים:
- תְחוּם: יכול להיות מחרוזת שרירותית, אך על פי מוסכמות שמות של MBean, עליו להיות בעל שם חבילה של Java (נמנע מעימותי שמות)
- מַפְתֵחַ: רשימה של "מפתח = ערךזוגות המופרדים בפסיק
בדוגמה זו נשתמש ב: "Com.baledung.tutorial: type = basic, name = game". נקבל את MBeanServer ממעמד המפעל java.lang.management.ManagementFactory. לאחר מכן נרשום את דגם MBean באמצעות נוצר ObjectName: לבסוף, רק כדי להיות מסוגל לבדוק את זה - נוסיף בזמן לולאה כדי למנוע את סיום היישום לפני שנוכל לגשת ל- MBean באמצעות JConsole: הנה מבט מהיר על החלק של JConsole בתהליך: יסודות הניהול של MBean הם פשוטים: בוא נראה מה זה אומר עבור מִשְׂחָק MBean בפועל: יומן הרישום הבא יופיע במסוף Eclipse: הגדר playerName לערך מסי יומן היומן הבא יופיע במסוף הליקוי: מסי משחק כדורגל בברצלונה הדרכה זו נגעה ביסודות הקמת יישום המותאם ל- JMX באמצעות MBeans. כמו כן, הוא דן בשימוש בכלי טיפוסי של צד הלקוח כמו JConsole לניהול מכשיר ה- MBean המאובזר. התחום של טכנולוגיית JMX הוא רחב מאוד בהיקפו ובהיקפו. מדריך זה יכול להיחשב כצעד למתחילים. קוד המקור של מדריך זה ניתן למצוא באתר Github.נסה את {ObjectName objectName = ObjectName חדש ("com.baeldung.tutorial: type = basic, name = game"); שרת MBeanServer = ManagementFactory.getPlatformMBeanServer (); server.registerMBean (משחק חדש (), objectName); } לתפוס (MalformedObjectNameException | InstanceAlreadyExistsException | MBeanRegistrationException | NotCompliantMBeanException e) {// להתמודד עם חריגים}
בעוד (נכון) {}
5. גישה ל- MBean
5.1. מתחבר מצד הלקוח
5.2. ניהול ה- MBean
6. מסקנה