透過 JMX 監控與管理
Java Management Extensions (JMX) 提供了一種標準機制來監控和管理應用程式。 預設情況下,此功能未啟用。 您可以將 spring.jmx.enabled
組態屬性設定為 true
來開啟它。 Spring Boot 將最合適的 MBeanServer
作為 ID 為 mbeanServer
的 bean 公開。 任何使用 Spring JMX 註解 (@ManagedResource
、@ManagedAttribute
或 @ManagedOperation
) 註解的 bean 都會對其公開。
如果您的平台提供了標準的 MBeanServer
,Spring Boot 將使用該伺服器,並在必要時預設為 VM MBeanServer
。 如果所有這些都失敗,則會建立新的 MBeanServer
。
有關更多詳細資訊,請參閱 JmxAutoConfiguration
類別。
預設情況下,Spring Boot 也會將管理端點作為 JMX MBean 在 org.springframework.boot
網域下公開。 若要完全控制 JMX 網域中端點的註冊,請考慮註冊您自己的 EndpointObjectNameFactory
實作。
自訂 MBean 名稱
MBean 的名稱通常從端點的 id
產生。 例如,health
端點會以 org.springframework.boot:type=Endpoint,name=Health
公開。
如果您的應用程式包含多個 Spring ApplicationContext
,您可能會發現名稱衝突。 為了解決此問題,您可以將 spring.jmx.unique-names
屬性設定為 true
,以便 MBean 名稱始終是唯一的。
您也可以自訂公開端點的 JMX 網域。 以下設定顯示如何在 application.properties
中執行此操作的範例
-
屬性
-
YAML
spring.jmx.unique-names=true
management.endpoints.jmx.domain=com.example.myapp
spring:
jmx:
unique-names: true
management:
endpoints:
jmx:
domain: "com.example.myapp"