<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          你聽說過JMX嗎?

          共 3900字,需瀏覽 8分鐘

           ·

          2021-07-13 07:28

          立體的萌 | 作者

          Java技術(shù)迷 | 出品

          前言

          JMX的全稱叫做Java Management Extension,中文名叫做java管理擴(kuò)展,他是一個(gè)給應(yīng)用程序、設(shè)備等做植入管理功能的框架,JMX主要是解決分布式系統(tǒng)管理的問題的;

          他的主要的優(yōu)點(diǎn)有:可以非常容易得管理應(yīng)用程序,得益于高度伸縮性的架構(gòu)服務(wù)可以很容易的部署或者是取消。更重要的是提供了很多接口(java中我最喜歡的類就是接口了)可擴(kuò)展性強(qiáng) ;

          JMX大體長這樣

          JMX每個(gè)層都是干嘛的?

          1.設(shè)備層

          管理構(gòu)件

          設(shè)備層主要的作用是定義了信息模型、通知機(jī)制、一些輔助元數(shù)據(jù)類以及如何實(shí)現(xiàn)JMX管理資源的規(guī)范,在JMX中,管理對(duì)象都是以管理構(gòu)件(MBean)的形式存在的,JMX的管理資源可以是一個(gè)java應(yīng)用或者是以個(gè)服務(wù)也可以是一個(gè)設(shè)備,只要是用java開發(fā)的或者是用java進(jìn)行包裝并且能置入JMX框架中的都叫JMX管理資源,并成為JMX的一個(gè)個(gè)管理構(gòu)件(MBean),管理的時(shí)候需要先向MBean服務(wù)器注冊(cè);

          管理構(gòu)件其實(shí)就是管理java資源并遵從一定的設(shè)計(jì)模式的接口,一個(gè)管理構(gòu)件的管理接口:能被接觸的屬性值、能夠執(zhí)行的操作、發(fā)出的通知事件和管理構(gòu)件的構(gòu)建器;

          JMX框架定義了四種管理構(gòu)件:

          第一種:標(biāo)準(zhǔn)管理構(gòu)件

          這是最簡(jiǎn)單的一種,這種構(gòu)件的實(shí)現(xiàn)是通過一組定義了屬性和操作的命名規(guī)則(也就是設(shè)計(jì)模式)來完成的,檢查標(biāo)準(zhǔn)管理構(gòu)件的接口和應(yīng)用設(shè)計(jì)模式的過程叫做內(nèi)??;

          JMX代理就是通過內(nèi)省來查看每一個(gè)注冊(cè)在MBean服務(wù)器上的管理構(gòu)件的函數(shù)和父類(查看他們是否遵從一定的設(shè)計(jì)模式)來決定他們能否代表一個(gè)管理部件,如果可以的話,就辨認(rèn)出他們的屬性和操作;

          第二種:動(dòng)態(tài)管理構(gòu)件

          這種構(gòu)件有著更好的靈活性,他的管理接口是可以在運(yùn)行時(shí)開放的,他通過來實(shí)現(xiàn)DynamicMBean接口來干活;JMX代理通過getMBeaniInfo()函數(shù)來獲取當(dāng)前的動(dòng)態(tài)管理構(gòu)件的管理接口,getMBeaniInfo()函數(shù)返回的對(duì)象是包含了屬性和操作的簽名的MBeanInfol類的實(shí)例;

          之所以動(dòng)態(tài)管理構(gòu)件可以在運(yùn)行期獲取,就是因?yàn)間etMBeaniInfo()函數(shù)的調(diào)用是發(fā)生在動(dòng)態(tài)管理構(gòu)件向MBean服務(wù)器注冊(cè)之后,與標(biāo)準(zhǔn)管理構(gòu)建不同的是:JMX代理不需要通過內(nèi)省這種方式來確定動(dòng)態(tài)管理構(gòu)件的管理接口;

          第三種:開放管理構(gòu)件

          嚴(yán)格來說,這也是動(dòng)態(tài)管理構(gòu)件,這是一種專門化的動(dòng)態(tài)管理構(gòu)件,就如同 接口也是抽象類,而且是一種更加抽象的抽象類,所有的有關(guān)開放管理構(gòu)件相關(guān)的參數(shù)、返回值類型和屬性都圍繞著一組預(yù)定義的數(shù)據(jù)類型來建立;

          預(yù)定義的數(shù)據(jù)類型就是我們常見的那些數(shù)據(jù)類型,比如:String、Integer、Float等,同時(shí)通過一組特定的接口來進(jìn)行自我描述,JMX代理通過獲得一個(gè)OpenMBeanInfo對(duì)象(OpenMBeanInfo是MBeanInfo的子類)來獲取開放管理構(gòu)件的管理接口;

          第四種:模型管理構(gòu)件

          與開放管理構(gòu)件一樣,他也是一種動(dòng)態(tài)管理構(gòu)件,而且也是一種專門化的動(dòng)態(tài)管理構(gòu)件,它是一種預(yù)制的、通用的并且還是動(dòng)態(tài)的MBean類,他包含了所有必要的默認(rèn)行為的實(shí)現(xiàn),還能允許在運(yùn)行時(shí)添加或者是覆蓋需要定制的實(shí)現(xiàn);

          JMX規(guī)定模型管理構(gòu)件必須通過實(shí)例化javax.management.modelmbean.RequiredModelMBean類來實(shí)現(xiàn),還要配置該構(gòu)件的默認(rèn)行為并注冊(cè)到JMX代理中,JMX代理通過獲取一個(gè)ModelMBeanInfo對(duì)象來獲取管理接口;

          模型管理構(gòu)件在我看來是最先進(jìn)的一種管理構(gòu)件,他的主要的優(yōu)點(diǎn)有:

          1. 持久性,它是有持久機(jī)制的,用的就是java序列化技術(shù)甚至是JDBC來存儲(chǔ)模型MBean的狀態(tài);

          2. 通知和日志功能,模型管理構(gòu)件可以記錄每個(gè)發(fā)出的通知,還自動(dòng)發(fā)出屬性變化通知;

          3. 屬性值緩存;

            通知模型

            JMX還定義了通知模型,接口只是提供了一部分功能,管理應(yīng)用程序還需要對(duì)狀態(tài)變化或者是特殊情況的發(fā)生做出反應(yīng)和處理,JMX通知模型的主要工作就是完成同一個(gè)JMX代理中的管理構(gòu)件之間的事件傳播;

            JMX的通知模型主要有以下幾部分:1.Nitification接口。

            一個(gè)通用的事件模型,用來標(biāo)識(shí)事件的類型,可以被直接使用,也可以根據(jù)傳遞的事件的需要而被擴(kuò)展;

            主要用于接收通知的對(duì)象;

            主要作用于需要通知過濾器的對(duì)象,為監(jiān)聽者提供過濾通知的過濾器;

            這是由通知發(fā)送者實(shí)現(xiàn)的接口,允許希望得到通知的監(jiān)聽者注冊(cè);

            輔助元數(shù)據(jù)類

            JMX框架還定義了輔助元數(shù)據(jù)類,它是用來描述管理構(gòu)件的,他不僅可以用來內(nèi)省標(biāo)準(zhǔn)管理構(gòu)件,還能被動(dòng)態(tài)管理構(gòu)件用來進(jìn)行自我描述,輔助元數(shù)據(jù)類通過屬性、操作、構(gòu)建器和通告來描述管理構(gòu)件,JMX代理就是通過輔助元數(shù)據(jù)類來管理所有的管理部件,不過管理部件具體是什么類型JMX代理就不管了;

            輔助元數(shù)據(jù)類主要有以下幾種:

            2.代理層

            代理層是運(yùn)行在java虛擬機(jī)上的管理實(shí)體,是管理資源和管理者之間的橋梁,代理層是直接管理資源的,他管理的資源庫可以被遠(yuǎn)程的管理程序所控制,代理層的主要構(gòu)成是一個(gè)MBean服務(wù)器和一系列處理被管理資源的服務(wù);

            MBean服務(wù)器

            MBean服務(wù)器是代理層是核心,這里注冊(cè)著設(shè)備層的所有的管理構(gòu)件,注冊(cè)個(gè)管理部件的時(shí)候必須提供唯一的一個(gè)對(duì)象名,管理應(yīng)用程序就是用這個(gè)對(duì)象名來進(jìn)行標(biāo)識(shí)管理部件并對(duì)其操作,具體的操作有: 1.發(fā)現(xiàn)管理構(gòu)件的管理接口;

            2.讀寫屬性值;

            3.執(zhí)行管理構(gòu)件中定義的操作;

            4.獲取管理構(gòu)件中發(fā)出的通告

            5.基于對(duì)象名和屬性名來查詢管理構(gòu)件;

            協(xié)議適配器和連接件

            MBean服務(wù)器就是依賴他倆來運(yùn)行與該代理的java虛擬機(jī)之外的管理應(yīng)用程序來進(jìn)行通信,協(xié)議適配器通過特定的協(xié)議提供了一張注冊(cè)在MBean服務(wù)器的管理構(gòu)件的視圖;

            連接器提供管理應(yīng)用一方的接口以使得代理和管理應(yīng)用程序進(jìn)行通信,也就是說中針對(duì)不同的通信連接器提供的是一樣的遠(yuǎn)程接口來封裝通信過程,當(dāng)遠(yuǎn)程應(yīng)用程序使用這個(gè)接口的時(shí)候就可以通過網(wǎng)絡(luò)透明的和代理進(jìn)行交互,與協(xié)議就沒什么關(guān)系了;

            適配器和連接器主要有這些:

            1.RMI連接器

            2.SNMP協(xié)議適配器

            3.IIOP協(xié)議適配器

            4.HTML協(xié)議適配器

            5.HTTP連接器

            代理服務(wù)

            代理服務(wù)可以對(duì)注冊(cè)的管理構(gòu)件執(zhí)行管理功能(智能管理),代理服務(wù)本身也是作為管理構(gòu)件而存在,也可以被MBean服務(wù)器控制;

            JMX定義的代理服務(wù)主要有以下幾種:

            通過管理小程序服務(wù)可以獲得并實(shí)例化新的類,還可以使網(wǎng)絡(luò)上的類庫本地化,他是通過management-applet服務(wù)來實(shí)現(xiàn)的;

            用來定期監(jiān)視管理構(gòu)件的屬性值,一旦超出范圍就會(huì)發(fā)出特定的通告,JMX規(guī)定了三種監(jiān)視器:計(jì)數(shù)器、度量和字符串;每一個(gè)監(jiān)視服務(wù)都是作為一個(gè)標(biāo)準(zhǔn)管理構(gòu)件存在的,需要提供服務(wù)的時(shí)候就可以由相應(yīng)的管理構(gòu)件或者是遠(yuǎn)程管理應(yīng)用程序動(dòng)態(tài)創(chuàng)建或配置注冊(cè)使用;

            可以周期性的發(fā)出通告或者是在制定日期和時(shí)間的時(shí)候發(fā)出通告,他也是一個(gè)管理構(gòu)件,主要作用就是幫助管理應(yīng)用程序建立一個(gè)可配置的備忘錄;

            JMX規(guī)范 中也定義了管理構(gòu)件之間的關(guān)系模型,一個(gè)關(guān)系是用戶定義的管理構(gòu)件之間的N維關(guān)系,關(guān)系模型中包括:角色、角色信息,管理類型,關(guān)系,角色值,關(guān)系服務(wù)等;

            注意,只有注冊(cè)哦MBean服務(wù)器上并且能被對(duì)象名標(biāo)識(shí)的管理構(gòu)件才能成為一個(gè)關(guān)系的成員,關(guān)系服務(wù)還能鎖定不合理關(guān)系類型的創(chuàng)建;

            3.分布服務(wù)層

            分布管理層規(guī)定了實(shí)現(xiàn)JMX 應(yīng)用管理平臺(tái)的接口,它定義了對(duì)能對(duì)代理層進(jìn)行操作的管理接口和組件;

            他的主要功能如下:

            有良好的安全性,通過管理應(yīng)用層和另一個(gè)管理代理的設(shè)備層的聯(lián)合就可以提供一個(gè)完整的網(wǎng)絡(luò)管理的解決方案;

            總結(jié)

            這就是JMX,他就像是javaweb世界里的一名無名小卒,默默付出,他的知名度沒有那么高,但是并不代表它的用途不廣泛,SUN公司在此基礎(chǔ)上開發(fā)了用于網(wǎng)絡(luò)管理的JDMK,還有BEA的weblogic應(yīng)用服務(wù)器把JMX作為自己的管理基礎(chǔ),JBoss實(shí)現(xiàn)的J2EE應(yīng)用服務(wù)器也是以JMX為內(nèi)核的;



            1. 為管理應(yīng)用程序提供一個(gè)接口,這個(gè)接口就好比是個(gè)連接器能夠透明的與代理層或者是JMX管理資源進(jìn)行交互;

            2. 通過各種協(xié)議的映射提供了一個(gè)JMX代理和所有可管理組件的視圖;

            3. 分布管理信息,把高層的管理平臺(tái)的管理信息向下面眾多的JMX代理發(fā)布;

            4. 收集多個(gè)JMX代理端的管理信息,并根據(jù)管理終端用戶的需要篩選其感興趣的內(nèi)容并整理成邏輯視圖的形式發(fā)給終端用戶;

            5. 關(guān)系服務(wù)
            6. 時(shí)間服務(wù)
            7. 監(jiān)視服務(wù)
            8. 動(dòng)態(tài)類裝載。
            9. NotificationBroadcaster接口。
            10. NotificationFilter接口。
            11. NotificationListener接口。
          本文作者:立體的萌  為Java技術(shù)迷專欄作者 投稿,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載。

          1、真香!用IDEA神器看源碼,效率真高!
          2、什么?Spring Boot CommandLineRunner 有坑???
          3、頂級(jí)分布式開源項(xiàng)目,配上這款可視化工具,真香!
          4、都知道Tomcat是個(gè)Servlet容器,可是Servlet又是怎么回事?
          5、這年頭,還有不會(huì)OOM排查神器mat的程序員么?
          6、Java程序員必會(huì)的工具庫,讓你的代碼量減少90%
          7、重裝IDEA再也不愁了,一招搞定同步個(gè)人配置了!

          點(diǎn)分享

          點(diǎn)收藏

          點(diǎn)點(diǎn)贊

          點(diǎn)在看

          瀏覽 49
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  豆花av资源 | 黄视频网站亚洲一级 | 亚洲性爱AV在线观看 | 欧美精品A | 人人射人人干 |