Java管理擴展

什么是JMX?

Java管理擴展(JMX)是一種API,用于管理或監視各種資源,例如應用程序,設備,服務,當然還有JVM。 通過Java社區流程(JCP)開發,JMX技術被構建為Java Specification Request 3。

JMX技術提供了遠程訪問,因此可以從遠程計算機上實現應用程序的管理。 JMX的用途非常廣泛,包括以下內容:

  • 在應用程序配置中進行更改,或僅檢查當前配置(在與遠程計算機打交道時很有用)。
  • 提取和累積數據以用于資源使用情況的統計分析或應用程序行為監視
  • 有關狀態更改或檢測到的錯誤的通知

JVM資源由一系列Java對象(稱為受管Bean或簡稱為MBean)來檢測。 這些Bean已在托管對象服務器(MBean Server)中注冊。 該服務器可以在支持Java編程語言的大多數設備上運行,并充當管理代理。 JMX代理是我們用來管理已檢測資源的工具。 代理由MBean服務器(MBean注冊的位置)和提供處理MBean手段的服務組成。 管理基礎結構不會干擾資源的檢測方式,反之亦然,因此無論資源管理應用程序的實現如何,都可以對資源進行相同的管理。

JMX技術是實現Java代理,檢測Java代碼,創建管理應用程序和管理中間件的標準且靈活的方式。 JMX連接器是允許程序員從遠程應用程序訪問JMX代理的鏈接。 不管它們使用的通信協議如何,JMX連接器都提供相同的管理接口。 因此,管理應用程序可以透明方式管理資源,而無需注意所使用的通信協議。

JMX架構

JMX技術由兩個規范定義,即Java規范請求3和Java規范請求160,這兩個規范都是通過Java社區流程開發的。 您可以將架構視為以下三個層次:

  • 工具:通過ManagedBeans對資源進行工具,ManagedBeans通過JMX代理公開其管理接口。
  • 代理:它的主要組件是MBean服務器。 代理提供了一組用于處理Mbean的服務,并且是直接控制資源并使資源可用于遠程管理的組件。
  • 遠程管理:可以通過協議適配器和標準連接器從JVM外部訪問JMX代理。

通過JMX技術管理資源需要首先使用Java編程語言對資源進行檢測。 這意味著需要使用Java MBean來實現對資源工具的訪問。 JMX的標準化方式使開發人員可以輕松創建可管理的應用程序,而不必了解和理解復雜的管理系統。

盡管不是必需的,但JMX代理通常與托管應用程序位于同一臺計算機上。 由于執行檢測的方式,它不知道其管理的資源。 遵循JMX規范進行檢測的任何資源都可以使用提供該資源所需服務的任何JMX代理。 JMX代理不應該知道管理應用程序正在訪問它的方式。 這確保了組件之間的高度獨立性。

有許多訪問JMX API工具的方法。 可以通過現有協議(例如SNMP(簡單網絡管理協議))或專有協議來提供訪問。 該連接通過MBeans Server所依賴的協議適配器和連接器進行路由,并使JMX代理可以從其JVM外部進行訪問。 每個適配器都提供了在MBeans服務器中注冊的所有MBean的視圖。 所有連接器都提供用于遠程管理的相同接口。

JMX技術是基于RMI(遠程方法調用)導出JMX API的標準化方法,它還提供了基于TCP套接字的協議,即JMX消息傳遞協議(JMXMP)。 不幸的是,并非所有JMX Remote API的實現都支持第二個基于TCP套接字的協議,例如Java SE平臺未包含該協議。

什么是MBean?

MBean是實現資源檢測的Java對象。 他們必須遵守JMX規范,以便以標準方式提供工具。 資源可以由一個或多個動態的或標準的MBean來檢測。 標準bean是除遵循JMX規范外,它們還遵循JavaBeans(TM)組件模型的對象,而動態bean則遵循特定的接口,以提供更大的運行時靈活性。

MBean的管理接口包含以下內容:

  • 可以讀取和/或寫入的命名和類型化屬性
  • 可以調用的名稱和類型化操作
  • Mbean可以發出的類型通知

標準Java MBean類通過其操作和屬性公開托管資源。 屬性通過getter和setter公開。 JMX代理使用自省功能來確定MBean提供的操作,從而非常容易且直接地管理新資源。 JVM本身是開箱即用的,可以輕松地以動態方式加載JMX代理,從而可以對JVM進行遠程管理和監視。

MXBeans簡介

如果滿足以下要求之一,則接口為MXBean:

  • 它用@MXBean批注標記,以明確指定接口代表MXBean的事實
  • 它沒有用@MXBean(false)批注標記以指定該接口不是MXBean
  • 它的名稱以MXBean結尾

MXBean是一種概念,它提供了一種編程MBean的簡便方法,該MBean僅引用javax.management.openmbean中定義的預定義類型集。 這樣可以確保即使客戶端無權訪問MBean的模型特定類,任何客戶端都可以使用MBean。 這些概念將作為與標準MBean的比較提供。

所有MXBean方法參數和返回值都必須使用Open Types進行描述,因為MXBean是Open MBean上的一種。 對于每個Java類型J,以下描述了MXBean映射:

  • 類型J的對應Open Type,opentype(J)
  • 映射的Java類型,opendata(J)
  • 值從J到opendata的轉換方式(J)

僅當Java類型J是從J派生opentype(J)的映射時,Java類型J才可以是MXBean中的方法參數的類型或返回值。如果存在將opendata(J)轉換回J的方法,則J是可重構的。為了使Mbean成為MXBean,所有方法參數都必須是可重構的,因為在方法調用時,MXBean框架會將參數從opendata(J)轉換為J。

Java平臺隨附的MXBean如下:ClassLoadingMXBean,CompilationMXBean,MemoryMXBean,ThreadMXBean,OperatingSystemMXBean,GarbageCollectorMXBean,MemoryManagerMXBean,MemoryPoolMXBean。

動態MBean在運行時定義其管理接口。 例如,數據庫MBean將確定從數據庫讀取數據后所公開的屬性的類型和名稱。 任何實現DynamicMBean的Java對象都是動態MBean。

Open MBean是一種動態MBean。 Open MBean由Java包javax.management.openmbean定義,從而簡化了遠程管理應用程序的操作,而無需管理應用程序知道應用程序特定的類型。 Open MBean的所有方法參數和返回值都是稱為Open Types的小型Java類型子集的類型。

動態MBean的另一種類型是模型MBean。 這些MBean由Java包javax.management.modelmbean定義,充當托管資源和管理接口之間的橋梁。 管理接口和資源被指定為Java對象。 這些MBean可用于為不同的托管資源提供通用功能(可針對不同資源多次使用)。

參考:來自Java出現日歷博客的JCG合作伙伴 Bogdan-Adrian Mihut的Java管理擴展 。

翻譯自: https://www.javacodegeeks.com/2012/12/java-management-extensions.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/370253.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/370253.shtml
英文地址,請注明出處:http://en.pswp.cn/news/370253.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

登錄網頁后要彈出一個新標簽_連永久鏈接都不會,還做什么新媒體?

上次給主編大大發的預覽鏈接失效了,被罵得狗血淋頭。大部分運營人可能都遇到過這種情況,忽視了預覽生成的鏈接只是臨時的,在12小時后或超過500閱讀量后就會失效。一個疏忽,給自己帶來了不必要的麻煩,耽誤工作&#xff…

混頻通信的matlab仿真,基于MATLAB的擴頻通信系統仿真研究—上海交通大學

基于MATLAB 的擴頻通信系統仿真研究范偉 翟傳潤 戰興群(上海交通大學電子信息與電氣工程學院,200030,上海)摘要 本文闡述了擴展頻譜通信技術的理論基礎和實現方法,利用MATLAB 提供的可視化工具Simulink 建立了擴頻通信系統仿真模型&#xff0…

static_cast與dynamic_cast轉換

static_cast與dynamic_cast轉換   一 C語言中存在著兩種類型轉換: 隱式轉換和顯式轉換 隱式轉換:不同數據類型之間賦值和運算,函數調用傳遞參數……編譯器完成 char ch;int i ch; 顯示轉換:在類型前增加 :&#xff…

vue使用iview Timeline 時間軸不顯示問題

vue Timeline 時間軸不顯示渲染的效果 官網代碼 <Timeline pending><TimelineItem>發布1.0版本</TimelineItem><TimelineItem>發布2.0版本</TimelineItem><TimelineItem>發布3.0版本</TimelineItem><TimelineItem><a href…

python 重置索引_python pandas 對series和dataframe的重置索引reindex方法

reindex更多的不是修改pandas對象的索引&#xff0c;而只是修改索引的順序&#xff0c;如果修改的索引不存在就會使用默認的None代替此行。且不會修改原數組&#xff0c;要修改需要使用賦值語句。series.reindex()import pandas as pdimport numpy as npobj pd.Series(range(4…

Java EE 6 Web配置文件。 在云上。 簡單。

Java SE還可以。 Java EE是邪惡的。 這就是我一直想的。 好吧&#xff0c;現在不再了。 讓我分享我的經驗。 幾周前&#xff0c;我開始考慮將舊版spring hibernate tomcat應用程序移植到新平臺上&#xff1a; SAP NetWeaver云 。 我知道您在極客那里的想法&#xff1a;…

Kubernetes核心概念總結

1、基礎架構 1.1 Master Master節點上面主要由四個模塊組成&#xff1a;APIServer、scheduler、controller manager、etcd。 APIServer。APIServer負責對外提供RESTful的Kubernetes API服務&#xff0c;它是系統管理指令的統一入口&#xff0c;任何對資源進行增刪改查的操作都要…

七、spring boot 1.5.4 集成shiro+cas,實現單點登錄和權限控制

1.安裝cas-server-3.5.2 官網&#xff1a;https://github.com/apereo/cas/releases/tag/v3.5.2 下載地址&#xff1a;cas-server-3.5.2-release.zip 安裝參考文章&#xff1a;http://blog.csdn.net/xuxuchuan/article/details/54924933 注意&#xff1a; 輸入 <tomcat_key&g…

php連接mysql數據,php連接mysql數據庫

$sql_link mysql_connect("主機名","登入用戶名","登入用戶名密碼");如果連接成功&#xff0c;就會返回一個mysql句柄,可以簡單的理解成這個$sql_link 是php跟mysql的一個橋梁&#xff0c;通過該橋梁我們可以進入到mysql。進入到mysql之后&…

CSS-自定義變量

使用背景&#xff1a; 一些常見的例子&#xff1a;為風格統一而使用顏色變量一致的組件屬性&#xff08;布局&#xff0c;定位等&#xff09;避免代碼冗余*更方便的從CSS向JS傳遞數據&#xff08;例如媒體斷點&#xff09; 為什么使用&#xff1a; 以下幾點是未來CSS屬性的簡短…

url存在寬字節跨站漏洞_利用WebSocket跨站劫持(CSWH)漏洞接管帳戶

在一次漏洞懸賞活動中&#xff0c;我發現了一個使用WebSocket連接的應用&#xff0c;所以我檢查了WebSocket URL&#xff0c;發現它很容易受到CSWH的攻擊(WebSocket跨站劫持)有關CSWH的更多詳細信息&#xff0c;可以訪問以下鏈接了解https://www.christian-schneider.net/Cross…

php 數組對比 unset,如何區分PHP中unset,array_splice的區別

1.使用的函數a.函數unset()unset ( mixed $var , mixed $... ? ) : voidunset()銷毀指定的變量。b.函數array_slice()array_splice(array,start,length,array)array表示數組。start表示刪除元素的開始位置。length表示被移除的元素個數&#xff0c;也是被返回數組的長度。(可…

MapReduce算法–二級排序

我們將繼續進行有關實現MapReduce算法的系列文章&#xff0c;該系列可在使用MapReduce進行數據密集型文本處理中找到。 本系列的其他文章&#xff1a; 使用MapReduce進行數據密集型文本處理 使用MapReduce進行數據密集型文本處理-本地聚合第二部分 使用Hadoop計算共現矩陣 …

Redis 字符串(String)

Redis 字符串(String) Redis 字符串數據類型的相關命令用于管理 redis 字符串值&#xff0c;基本語法如下&#xff1a; 語法 redis 127.0.0.1:6379> COMMAND KEY_NAME 實例 redis 127.0.0.1:6379> SET runoobkey redis OK redis 127.0.0.1:6379> GET runoobkey "…

前端基礎-CSS的各種選擇器的特點以及CSS的三大特性

一、 基本選擇器二、 后代選擇器、子元素選擇器三、 兄弟選擇器四、 交集選擇器與并集選擇器五、 序列選擇器六、 屬性選擇器七、 偽類選擇器八、 偽元素選擇器九、 CSS三大特性 一、 基本選擇器 1、id選擇器 #1、作用&#xff1a;根據指定的id名稱&#xff0c;在當前界面中找…

Php流式 大文件,如何使用PHP解析XML大文件

如果使用 PHP 解析 XML 的話&#xff0c;那么常見的選擇有如下幾種&#xff1a;DOM、SimpleXML、XMLReader。如果要解析 XML 大文件的話&#xff0c;那么首先要排除的是 DOM&#xff0c;因為使用 DOM 的話&#xff0c;需要把整個文件全部加載才能解析&#xff0c;效率堪憂&…

python 白盒測試_白盒測試教程 - 顏麗的個人空間 - OSCHINA - 中文開源技術交流社區...

總共貼了39節&#xff0c;后續還有很長&#xff0c;共122節&#xff0c;文章名為‘白盒測試教程’1、白盒測試概念2、測試覆蓋標準3、邏輯驅動測試4、基本路徑測試白盒測試概念1、白盒測試也稱結構測試或邏輯驅動測試&#xff0c;是一種測試用例設計方法&#xff0c;它從程序的…

Oracle 分析函數及常用函數

什么叫分析函數(Analytic function)&#xff1f; Oracle從8.1.6開始提供分析函數&#xff0c;分析函數用于計算基于組的某種聚合值&#xff0c;它和聚合函數的不同之處是 對于每個組返回多行&#xff0c;而聚合函數對于每個組只返回一行。 基本語法 function_name(arg1,arg2,..…

ScanTailor-ScanTailor 強大的多方位的滿足處理掃描圖片的需求

ScanTailor 強大的多方位的滿足處理掃描圖片的需求ScanTailor 能做什么&#xff1f;批量或單張或選擇區間旋轉圖片自動切割頁面&#xff0c;同時提供手動選項自動識別圖像歪斜角度&#xff0c;同時提供手動選項自動識別正文內容裁剪&#xff0c;同時提供手動選項設置正文上下左…

使用JavaCV進行手和手指檢測

這篇文章是Andrew Davison博士發布的有關自然用戶界面&#xff08;NUI&#xff09;系列的一部分&#xff0c;內容涉及使用JavaCV從網絡攝像頭視頻提要中檢測手。 注意&#xff1a;可以從http://fivedots.coe.psu.ac.th/~ad/jg/nui055/下載本章的所有源代碼。 第5章的彩色斑點檢…