Bla*_*nie 5 java jmx spring-boot hikaricp
如何在 Spring 启动应用程序中为 HikariCP 使用 JMX MBean?我有一个这样的代码:
@SpringBootApplication
public class App() { ... }
Run Code Online (Sandbox Code Playgroud)
和其他类:
@Configuration
public class DatabaseCfg() {
@Bean
@ManagedOperation
public DataSource ds (@Value("${hikari.proprerties}") String config) {
HikariConfig hikariConfig = new HikariConfig(config);
return new HikariDataSource(hikariConfig);
}
Run Code Online (Sandbox Code Playgroud)
在 Java Mission Control(或 JMX 控制台)中,只看到数据源托管 bean,而不是 HikariCP 的 JMX MBean(链接)。是否也可以添加?
小智 5
在 Spring Boot 2.0+ 中,您可以在 application.properties 文件中设置 register-mbeans 属性
spring.datasource.hikari.register-mbeans = true
Run Code Online (Sandbox Code Playgroud)
如果您使用的是较早版本的 Spring Boot,则还必须设置数据源
spring.datasource.type = com.zaxxer.hikari.HikariDataSource
Run Code Online (Sandbox Code Playgroud)
小智 1
我相信您需要在 hikariConfig 上设置一些额外的设置。您需要注册 MBean 并在配置上设置池名称。
HikariConfig hiakriConfig = new HikariConfig(config);
hikariConfig.setRegisterMbeans(true);
kikariConfig.setPoolName("my-pool-1");
Run Code Online (Sandbox Code Playgroud)
是的,您显然也可以通过属性来驱动这些。我不确定您是否将这些包含在属性文件中,因为它们未列出。另请注意,您拼写的属性错误 (@Value("${ds.proprerties}") 可能应该是 (@Value("${ds.properties}") 但我不确定您实际上是如何命名变量的和属性文件。您可能需要仔细检查这是否是您要设置所有属性的位置。
| 归档时间: |
|
| 查看次数: |
6381 次 |
| 最近记录: |