使用MBean和Jolokia實現資料監控

2021-09-27 12:34:35 字數 2952 閱讀 7024

通過mbean的定義可以在系統執行時,檢視系統內部的資料或執行系統內部的功能,真正的使用過程中靜態mbean的使用是最多的。

定義的mbean必須實現以類名+mbean的介面

如下所示定義了乙個mbean結構shardinfo,所以為了使shardinfo能夠註冊進mbeanserver中,需要定義介面shardinfombean,並實現。

@getter

@setter

public

class

shardinfo

extends

abstractmxbean

implements

shardinfombean

}

mbeanname/mbeantype/mbeancategory主要是對mbean進行分類,對應效果如圖:

實現的xxmbean介面中,以getxx方法確定可以查詢的字段

public

inte***ce

shardinfombean

如上面**所示,顯示的字段為shardname。

可以觸發方法,也是xxmbean介面中定義的方法,實現即為mbean中對應的實現

新增printshardname方法與實現

手動觸發該方法:

方法執行完成:

從上文已經知道對於靜態mbean如何定義,通過jdk自帶的managementfactory可以完成mbean的註冊。核心邏輯如下所示:

private

boolean

registermbean()

", mbeanname)

;// unregistered if already registered

if(server.

isregistered

(mbeanname)

) found to be already registered"

, mbeanname)

;try

catch

(exception e)

resulted in exception {} "

, mbeanname, e);}

} server.

registermbean

(this

, mbeanname)

; registered =

true

; log.

debug

("mbean {} registered successfully"

, mbeanname.

getcanonicalname()

);}catch

(exception e)

return registered;

}

其中server是固定的:

private final mbeanserver server = managementfactory.getplatformmbeanserver();
mbeanname全路徑名稱格式為base_jmx_prefix:type=xx,catagory=xx,name=xx具體拼接**為:

private objectname getmbeanobjectname()

throws malformedobjectnameexception

builder.

(",name=").

(getmbeanname()

);return

newobjectname

(builder.

tostring());}

mbeanserver server = managementfactory.

getplatformmbeanserver()

;@test

public

void

testgetshardinfombean()

throws malformedobjectnameexception, introspectionexception, instancenotfoundexception, reflectionexception, attributenotfoundexception, mbeanexception

目前考慮有下列兩個方法:

開發mbean上的相關註解,觸發在編譯期其注入方法至介面類中

使用動態mbean實現

CASpringAnimation使用和屬性解析

caspringanimation ios9 才引入的動畫類,它繼承於 cabaseanimation 用於製作彈簧動畫效果。首先來看乙個簡單的例子,鐘擺 如果沒有阻力,將一直搖擺下去,如下圖 如果是無摩擦力情況下,那麼就會類似於下圖的運動軌跡 在真實的世界中,系統將由於摩擦力的存在而缺少動力並最終...

mac使用和linux命令使用

command n快速開啟當前 1.cd 你的資料夾路徑的上一級目錄。2.sudo chmod r 777 你的資料夾名。3.輸入密碼。4.成功which git ren png jpg 重新命名檔案 touch nash 建立檔案 cp test test2 複製檔案 cp rv textcopt...

何時使用和不使用BBR

tcp bbr bottleneck bandwidth and round trip propagation time 是由google設計,並於2016年發布的擁塞演算法,以往大部分擁塞演算法是基於丟包來作為降低傳輸速率的訊號,而bbr基於模型主動探測。不過,在具體談論應該bbr合適的應用場景之...