基于JMX的監控和管理
Java管理擴充(JMX)提供了一種标準的監控和管理應用的機制。預設情況下,Spring Boot在org.springframework.boot域下将管理端點暴露為JMX MBeans。
自定義MBean名稱
MBean的名稱通常産生于端點的id,例如,health端點被暴露為org.springframework.boot/Endpoint/healthEndpoint。
如果應用包含多個Spring ApplicationContext,你會發現存在名稱沖突。為了解決這個問題,你可以将endpoints.jmx.uniqueNames設定為true,這樣MBean的名稱總是唯一的。
你也可以自定義端點暴露的JMX域,具體可參考以下application.properties示例: ```properties endpoints.jmx.domain=myapp endpoints.jmx.uniqueNames=true
禁用JMX端點
如果不想通過JMX暴露端點,你可以将endpoints.jmx.enabled屬性設定為false:
1endpoints.jmx.enabled=false
使用Jolokia通過HTTP實作JMX遠端管理
Jolokia是一個JMX-HTTP橋,它提供了一種通路JMX beans的替代方法。想要使用Jolokia,隻需添加org.jolokia:jolokia-core的依賴。例如,使用Maven需要添加以下配置:
1<dependency>
2 <groupId>org.jolokia</groupId>
3 <artifactId>jolokia-core</artifactId>
4 </dependency>
然後在你的管理HTTP伺服器上可以通過/jolokia通路Jolokia。
自定義Jolokia
Jolokia有很多配置,通常使用servlet參數進行設定,跟Spring Boot一塊使用時可以在application.properties中添加jolokia.config.字首的屬性進行配置:
1jolokia.config.debug=true
禁用Jolokia
如果正在使用Jolokia,又不想讓Spring Boot配置它,你隻需要簡單的将endpoints.jolokia.enabled屬性設定為false:
1endpoints.jolokia.enabled=false