ÉèΪÊ×Ò³ ¼ÓÈëÊÕ²Ø

TOP

´ÓÁ㿪ʼÍæת JMX ( Ò» ) ¡ª ¼ò½éºÍ Standard MBean(Ò»)
2017-09-30 11:24:54 ¡¾´ó ÖРС¡¿ ä¯ÀÀ:9865´Î
Tags£º´ÓÁã ¿ªÊ¼ JMX ¼ò½é Standard MBean

JMXµÄÈ«³ÆΪJava Management Extensions. ¹ËÃû˼Ò壬ÊǹÜÀíJavaµÄÒ»ÖÖÀ©Õ¹¡£ÕâÖÖ»úÖÆ¿ÉÒÔ·½±ãµÄ¹ÜÀí¡¢¼à¿ØÕýÔÚÔËÐÐÖеÄJava³ÌÐò¡£³£ÓÃÓÚ¹ÜÀíỊ̈߳¬Äڴ棬ÈÕÖ¾Level£¬·þÎñÖØÆô£¬ÏµÍ³»·¾³µÈ¡£

¼ò½é

»ù±¾ÊõÓï

  • MBean£ºÊÇManaged BeanµÄ¼ò³Æ£¬¿ÉÒÔ·­ÒëΪ¡°¹ÜÀí¹¹¼þ¡±¡£ÔÚJMXÖÐMBean´ú±íÒ»¸ö±»¹ÜÀíµÄ×ÊԴʵÀý£¬Í¨¹ýMBeanÖб©Â¶µÄ·½·¨ºÍÊôÐÔ£¬Íâ½ç¿ÉÒÔ»ñÈ¡±»¹ÜÀíµÄ×ÊÔ´µÄ״̬ºÍ²Ù×ÝMBeanµÄÐÐΪ¡£ÊÂʵÉÏ£¬MBean¾ÍÊÇÒ»¸öJava Object£¬Í¬JavaBeanÄ£ÐÍÒ»Ñù£¬Íâ½çʹÓÃ×ÔÐѺͷ´ÉäÀ´»ñÈ¡ObjectµÄÖµºÍµ÷ÓÃObjectµÄ·½·¨£¬Ö»ÊÇMBean¸üΪ¸´ÔӺ͸߼¶Ò»Ð©¡£MBeanͨ¹ý¹«¹²·½·¨ÒÔ¼°×ñ´ÓÌض¨µÄÉè¼Æģʽ·â×°ÁËÊôÐԺͲÙ×÷£¬ÒԱ㱩¶¸ø¹ÜÀíÓ¦ÓóÌÐò¡£ÀýÈ磬һ¸öÖ»¶ÁÊôÐÔÔÚ¹ÜÀí¹¹¼þÖÐÖ»ÓÐGet·½·¨£¬¼ÈÓÐGetÓÖÓÐSet·½·¨±íʾÊÇÒ»¸ö¿É¶ÁдµÄÊôÐÔ¡£Ò»¹²ÓÐËÄÖÖÀàÐ͵ÄMBean: Standard MBean, Dynamic MBean, Open MBean, Model MBean¡£
  • MBeanServer£ºMBeanÉú´æÔÚÒ»¸öMBeanServerÖС£MBeanServer¹ÜÀíÕâЩMBean£¬²¢ÇÒ´úÀíÍâ½ç¶ÔËüÃǵķÃÎÊ¡£²¢ÇÒMBeanServerÌṩÁËÒ»ÖÖ×¢²á»úÖÆ£¬ÊǵÄÍâ½ç¿ÉÒÔͨ¹ýÃû×ÖÀ´µÃµ½ÏàÓ¦µÄMBeanʵÀý¡£
  • JMX Agent£ºAgentÖ»ÊÇÒ»¸öJava½ø³Ì£¬Ëü°üÀ¨Õâ¸öMBeanServerºÍһϵÁи½¼ÓµÄMbeanService¡£µ±È»ÕâЩServiceÒ²ÊÇͨ¹ýMBeanµÄÐÎʽÀ´·¢²¼¡£
  • Protocol Adapters and Connectors£ºMBeanServerÒÀÀµÓÚProtocol AdaptersºÍConnectorsÀ´ºÍÔËÐиôúÀíµÄJavaÐéÄâ»úÖ®ÍâµÄ¹ÜÀíÓ¦ÓóÌÐò½øÐÐͨÐÅ¡£Protocol Adaptersͨ¹ýÌض¨µÄЭÒéÌṩÁËÒ»ÕÅ×¢²áÔÚMBeanServerµÄMBeanµÄÊÓͼ¡£ÀýÈ磬һ¸öHTML Adapter¿ÉÒÔ½«ËùÓÐ×¢²á¹ýµÄMBeanÏÔʾÔÚWeb Ò³ÃæÉÏ¡£²»Í¬µÄЭÒ飬Ìṩ²»Í¬µÄÊÓͼ¡£Connectors»¹±ØÐëÌṩ¹ÜÀíÓ¦ÓÃÒ»·½µÄ½Ó¿ÚÒÔʹ´úÀíºÍ¹ÜÀíÓ¦ÓóÌÐò½øÐÐͨÐÅ£¬¼´Õë¶Ô²»Í¬µÄЭÒ飬Connectors±ØÐëÌṩͬÑùµÄÔ¶³Ì½Ó¿ÚÀ´·âװͨÐŹý³Ì¡£µ±Ô¶³ÌÓ¦ÓóÌÐòʹÓÃÕâ¸ö½Ó¿Úʱ£¬¾Í¿ÉÒÔͨ¹ýÍøÂç͸Ã÷µÄºÍ´úÀí½øÐн»»¥£¬¶øºöÂÔЭÒé±¾Éí¡£AdaptersºÍConnectorsʹMBean·þÎñÆ÷Óë¹ÜÀíÓ¦ÓóÌÐòÄܽøÐÐͨÐÅ¡£Òò´Ë£¬Ò»¸ö´úÀíÒª±»¹ÜÀí£¬Ëü±ØÐëÌṩÖÁÉÙÒ»¸öProtocol Adapter»òÕßConnector¡£ÃæÁÙ¶àÖÖ¹ÜÀíÓ¦ÓÃʱ£¬´úÀí¿ÉÒÔ°üº¬¸÷ÖÖ²»Í¬µÄProtocol AdaptersºÍConnectors¡£µ±Ç°ÒѾ­ÊµÏֺͽ«ÒªÊµÏÖµÄProtocol AdaptersºÍConnectors°üÀ¨£º RMI Connector, SNMP Adapter, IIOP Adapter, HTML Adapter, HTTP Connector.

Adapter ºÍConnectorµÄÇø±ðÔÚÓÚ£ºAdapterÊÇʹÓÃijÖÖInternetЭÒéÀ´ÓëJMX Agent»ñµÃÁªÏµ£¬Agent¶Ë»áÓÐÒ»¸ö¶ÔÏó (Adapter)À´´¦ÀíÓйØЭÒéµÄϸ½Ú¡£±ÈÈçSNMP AdapterºÍHTTP Adapter¡£¶øConnectorÔòÊÇʹÓÃÀàËÆRPCµÄ·½Ê½À´·ÃÎÊAgent£¬ÔÚAgent¶ËºÍ¿Í»§¶Ë¶¼±ØÐëÓÐÕâÑùÒ»¸ö¶ÔÏóÀ´´¦ÀíÏàÓ¦µÄÇëÇóÓëÓ¦´ð¡£±ÈÈçRMI Connector¡£
JMX Agent¿ÉÒÔ´øÓÐÈÎÒâ¶à¸öAdapter£¬Òò´Ë¿ÉÒÔʹÓöàÖÖ²»Í¬µÄ·½Ê½·ÃÎÊAgent¡£

JMX»ù±¾¹¹¼Ü

JMX·ÖΪÈý²ã£¬·Ö±ð¸ºÔð´¦Àí²»Í¬µÄÊÂÎñ¡£ËüÃÇ·Ö±ðÊÇ£º

Instrumentation ²ã

Instrumentation²ãÖ÷Òª°üÀ¨ÁËһϵÁеĽӿڶ¨ÒåºÍÃèÊöÈçºÎ¿ª·¢MBeanµÄ¹æ·¶¡£Í¨³£JMXËù¹ÜÀíµÄ×ÊÔ´ÓÐÒ»¸ö»ò¶à¸öMBean×é³É£¬Òò´ËÕâ¸ö×ÊÔ´¿ÉÒÔÊÇÈκÎÓÉJavaÓïÑÔ¿ª·¢µÄ×é¼þ£¬»òÊÇÒ»¸öJavaWrapper°ü×°µÄÆäËûÓïÑÔ¿ª·¢µÄ×ÊÔ´¡£

Agent ²ã

Agent ÓÃÀ´¹ÜÀíÏàÓ¦µÄ×ÊÔ´£¬²¢ÇÒΪԶ¶ËÓû§Ìṩ·ÃÎʵĽӿڡ£Agent²ã¹¹½¨ÔÚIntrumentation²ãÖ®ÉÏ£¬²¢ÇÒʹÓò¢¹ÜÀí Instrumentation²ãÄÚ²¿ÃèÊöµÄ×é¼þ¡£Agent²ãÖ÷Òª¶¨ÒåÁ˸÷ÖÖ·þÎñÒÔ¼°Í¨ÐÅÄ£ÐÍ¡£¸Ã²ãµÄºËÐÄÊÇÒ»MBeanServer,ËùÓеÄMBean¶¼ÒªÏòËü×¢²á£¬²ÅÄܱ»¹ÜÀí¡£×¢²áÔÚMBeanServerÉϵÄMBean²¢²»Ö±½ÓºÍÔ¶³ÌÓ¦ÓóÌÐò½øÐÐͨÐÅ£¬ËûÃÇͨ¹ýЭÒéÊÊÅäÆ÷£¨Adapter£©ºÍÁ¬½ÓÆ÷£¨Connector£©½øÐÐͨÐÅ¡£Í¨³£AgentÓÉÒ»¸öMBeanServerºÍ¶à¸öϵͳ·þÎñ×é³É¡£JMX Agent²¢²»¹ØÐÄËüËù¹ÜÀíµÄ×ÊÔ´ÊÇʲô¡£

Distributed ²ã

Distributed²ã¹ØÐÄAgentÈçºÎ±»Ô¶¶ËÓû§·ÃÎʵÄϸ½Ú¡£Ëü¶¨ÒåÁËһϵÁÐÓÃÀ´·ÃÎÊAgentµÄ½Ó¿ÚºÍ×é¼þ£¬°üÀ¨AdapterºÍConnectorµÄÃèÊö¡£

Èç¹ûÒ»¸öJava¶ÔÏó¿ÉÒÔÓÉÒ»¸ö×ñÑ­JMX¹æ·¶µÄ¹ÜÀíÆ÷Ó¦ÓùÜÀí£¬ÄÇôÕâ¸öJava¶ÔÏó¾Í¿ÉÒÔÓÉJMX¹ÜÀí×ÊÔ´¡£ÒªÊ¹Ò»¸öJava¶ÔÏó¿É¹ÜÀí£¬Ôò±ØÐë´´½¨ÏàÓ¦µÄMBean¶ÔÏ󣬲¢Í¨¹ýÕâЩMBean¶ÔÏó¹ÜÀíÏàÓ¦µÄJava¶ÔÏó¡£µ±ÓµÓÐMBeanÀàºó£¬ÐèÒª½«ÆäʵÀý»¯²¢×¢²áµ½MBeanServerÉÏ¡£

ÏêÊö

ÕâÀï²ÉÓõÄÊÇJDK7£¬JDK7ÖÐÒѾ­°üº¬ÁËjmx£¬µ«ÊÇÈç¹ûÓõ½HtmlAdaptorServerÀࣨºóÃæ»á¿´µ½£©»¹ÐèÒªÓõ½jmxtools.jar, ¿ÉÒÔÈ¥ÕâÀïÏÂÔØ£¬ÓÐÁ½¸ö°ü£ºjmx-1_2_1-ri.zip£» jmx_remote-1_0_1_03-ri.zip¡£jmx-1_2_1-ri.zip½âѹºólibÖÐÓÐjmxri.jarºÍjmxtools.jar,½«jmxtool.jar¿½±´³öÀ´·ÅÈëclasspathÖм´¿É£¨jmxri.jarÔÚJDK5+ÒѾ­°ü±»°üº¬ÁË£©¡£

Standard MBean

Standard MBeanµÄÉè¼ÆºÍʵÏÖÊÇ×î¼òµ¥µÄ£¬ËüÃǵĹÜÀí½Ó¿Úͨ¹ý·½·¨ÃûÀ´ÃèÊö¡£Standard MBeanµÄʵÏÖÒÀ¿¿Ò»×éÃüÃû¹æÔò£¬³Æ֮ΪÉè¼Æģʽ¡£ÕâЩÃüÃû¹æÔò¶¨ÒåÁËÊôÐԺͲÙ×÷¡£

¼ì²éStandard MBean½Ó¿ÚºÍÓ¦ÓÃÉè¼ÆģʽµÄ¹ý³Ì±»³ÆΪÄÚÊ¡£¨Introspection£©¡£JMX´úÀíͨ¹ýÄÚÊ¡À´²é¿´Ã¿Ò»¸ö×¢²áÔÚMBeanServerÉϵÄMBeanµÄ·½·¨ºÍ³¬À࣬¿´ËüÊÇ·ñ×ñ´ÓÒ»¶¨Éè¼Æģʽ£¬¾ö¶¨ËüÊÇ·ñ´ú±íÁËÒ»¸öMBean£¬²¢±æÈϳöËüµÄÊôÐԺͲÙ×÷¡£

Standard MBeanÊÇJMX¹ÜÀí¹¹¼þÖÐ×î¼òµ¥µÄÒ»ÖÖ£¬Ö»ÐèÒª¿ª·¢Ò»¸öMBean½Ó¿Ú£¨ÎªÁËʵÏÖStandard MBean£¬±ØÐë×ñÑ­Ò»Ì׼̳й淶¡£±ØÐëÿһ¸öMBean¶¨ÒåÒ»¸ö½Ó¿Ú£¬¶øÇÒÕâ¸ö½Ó¿ÚµÄÃû×Ö±ØÐëÊÇÆä±»¹ÜÀíµÄ×ÊÔ´µÄ¶ÔÏóÀàµÄÃû³ÆºóÃæ¼ÓÉÏ¡±MBean¡±£©£¬Ò»¸öʵÏÖMBean½Ó¿ÚµÄÀ࣬²¢ÇÒ°ÑËüÃÇ×¢²áµ½MBeanServerÖоͿÉÒÔÁË¡£

package com.test.jmx;

public interface HelloMBean {
    public String getName();
    public void setName(String name);
    public void printHello();
    public void printHello(String whoNam
Ê×Ò³ ÉÏÒ»Ò³ 1 2 3 4 5 ÏÂÒ»Ò³ βҳ 1/5/5
¡¾´ó ÖРС¡¿¡¾´òÓ¡¡¿ ¡¾·±Ìå¡¿¡¾Í¶¸å¡¿¡¾Êղء¿ ¡¾ÍƼö¡¿¡¾¾Ù±¨¡¿¡¾ÆÀÂÛ¡¿ ¡¾¹Ø±Õ¡¿ ¡¾·µ»Ø¶¥²¿¡¿
ÉÏһƪ£º¸úÉÏ Java 8 ¨C ÈÕÆÚºÍʱ¼äʵÓü.. ÏÂһƪ£º¸úÉÏ Java 8 ¨C ÄãºöÂÔÁ˵ÄÐÂÌØÐÔ

×îÐÂÎÄÕÂ

ÈÈÃÅÎÄÕÂ

Hot ÎÄÕÂ

Python

C ÓïÑÔ

C++»ù´¡

´óÊý¾Ý»ù´¡

linux±à³Ì»ù´¡

C/C++ÃæÊÔÌâÄ¿