CompactionManagerMbean和CompactionManager
首先是CompactionManagerMBean,這部分代碼是一個接口,關于這部分可以主要參考:https://docs.oracle.com/javase/tutorial/jmx/mbeans/standard.html
其主要是使用JMX技術,即Java Management Extensions,是管理java的一種擴展。這種機制可以方便的管理、監(jiān)控正在運行中的Java程序。常用于管理線程,內存,日志Level,服務重啟,系統(tǒng)環(huán)境等。使用JMX技術主要是可以將資源通過Mbean對象進行管理。
Mbean:是Managed Bean的簡稱,可以翻譯為“管理構件”。在JMX中MBean代表一個被管理的資源實例,通過MBean中暴露的方法和屬性,外界可以獲取被管理的資源的狀態(tài)和操縱MBean的行為。事實上,MBean就是一個Java Object,同JavaBean模型一樣,外界使用自醒和反射來獲取Object的值和調用Object的方法,只是MBean更為復雜和高級一些。
對于CompactionManager:
其內部的數據的格式主要是使用了javax內部的openmbean.TabularData部分。下面的網址提供了一些代碼的實例:
https://www.programcreek.com/java-api-examples/index.php?api=javax.management.openmbean.TabularData
同時包括了RateLimiter使用Google Guava的技術實現。?
監(jiān)控使用實現的CompactionMetrics
參考:
http://www.itdecent.cn/p/6aff920def9b
https://docs.oracle.com/javase/tutorial/jmx/mbeans/standard.html
https://docs.oracle.com/javase/8/docs/technotes/guides/jmx/overview/JMXoverviewTOC.html
https://docs.oracle.com/javase/8/docs/technotes/guides/jmx/tutorial/tutorialTOC.html