广告
返回顶部
首页 > 资讯 > 精选 >怎么实现Hikari连接池使用SpringBoot配置JMX监控
  • 307
分享到

怎么实现Hikari连接池使用SpringBoot配置JMX监控

2023-06-20 14:06:43 307人浏览 泡泡鱼
摘要

这篇文章主要介绍“怎么实现Hikari连接池使用SpringBoot配置JMX监控”,在日常操作中,相信很多人在怎么实现Hikari连接池使用springBoot配置JMX监控问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希

这篇文章主要介绍“怎么实现Hikari连接池使用SpringBoot配置JMX监控”,在日常操作中,相信很多人在怎么实现Hikari连接池使用springBoot配置JMX监控问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么实现Hikari连接池使用SpringBoot配置JMX监控”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

Hikari是Spring Boot默认的数据库连接池。区别于C3P0直接通过连接池对象获取各项状态指标,Hikari需要通过JMX来获取。Demo如下,采用Spring Boot集成,定时采集连接状态。

public static void main(String[] args) throws sqlException, MalfORMedObjectNameException, InterruptedException { SpringApplication.run(HikariTest.class, args); HikariDataSource hikaridatasource = new HikariDataSource(); hikaridatasource.setJdbcUrl("jdbc:mysql://localhost:3306?serverTimezone=GMT"); hikaridatasource.setUsername("root"); hikaridatasource.setPassword(""); hikaridatasource.setDriverClassName("com.Mysql.cj.jdbc.Driver"); hikaridatasource.setReGISterMbeans(true); hikaridatasource.setPoolName("HikariConnectionPool"); MBeanServer mBeanServer = ManagementFactory.getPlatformMBeanServer(); ObjectName poolName = new ObjectName("com.zaxxer.hikari:type=Pool (" + hikaridatasource.getPoolName() + ")"); poolProxy = JMX.newMXBeanProxy(mBeanServer, poolName, HikariPoolMXBean.class); Connection conn = hikaridatasource.getConnection(); Statement sm = conn.createStatement(); ResultSet rs = null; for (int i = 0; i < 999999999; i++) {  rs = sm.executeQuery("select name from test.t1"); } rs.close(); sm.close(); conn.close(); hikaridatasource.close();}@Scheduled(fixedRate = 1000)public void HikariMonitor() { if(poolProxy == null) {  log.info("Hikari not initialized,please wait..."); }else {  log.info("HikariPoolState = "  + "Active=[" + String.valueOf(poolProxy.getActiveConnections() + "] "  + "Idle=[" + String.valueOf(poolProxy.getIdleConnections() + "] "  + "Wait=["+poolProxy.getThreadsAwaitinGConnection()+"] "  + "Total=["+poolProxy.getTotalConnections()+"]"))); } }

另外,在GitHub有提到这样的issue:

ObjectName poolName = new ObjectName("com.zaxxer.hikari:type=Pool (" + hikaridatasource.getPoolName() + ")");

可能会抛错

06:23.231 [main] DEBUG com.zaxxer.hikari.HikariConfig - Driver class com.mysql.cj.jdbc.Driver found in Thread context class loader sun.misc.Launcher$AppClassLoader@73D16e93
Exception in thread "main" java.lang.reflect.UndeclaredThrowableException
 at com.sun.proxy.$Proxy2.getIdleConnections(Unknown Source)
 at com.zte.hikariTest.HikariTest.main(HikariTest.java:32)
Caused by: javax.management.InstanceNotFoundException: com.zaxxer.hikari:type=Pool (foo)
 at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getMBean(Unknown Source)
 at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getAttribute(Unknown Source)
 at com.sun.jmx.mbeanserver.JmxMBeanServer.getAttribute(Unknown Source)
 at com.sun.jmx.mbeanserver.MXBeanProxy$GetHandler.invoke(Unknown Source)
 at com.sun.jmx.mbeanserver.MXBeanProxy.invoke(Unknown Source)
 at javax.management.MBeanServerInvocationHandler.invoke(Unknown Source)
 ... 2 more

这是因为Hikari设置参数同样支持setHikariConfig和配置文件两种配置方式,请选择其中一种进行配置,而不是二者一起使用。并且请配置属性如下,否则 JMX 无法生效。

hikaridatasource.setRegisterMbeans(true);

代码效果如下所示

2019-03-09 02:05:04.738 INFO com.zte.hikariTest.HikariTest.69 -HikariPoolState = Active=[1] Idle=[9] Wait=[0] Total=[10]
2019-03-09 02:05:05.740 INFO com.zte.hikariTest.HikariTest.69 -HikariPoolState = Active=[1] Idle=[9] Wait=[0] Total=[10]
2019-03-09 02:05:06.732 INFO com.zte.hikariTest.HikariTest.69 -HikariPoolState = Active=[1] Idle=[9] Wait=[0] Total=[10]
2019-03-09 02:05:07.738 INFO com.zte.hikariTest.HikariTest.69 -HikariPoolState = Active=[1] Idle=[9] Wait=[0] Total=[10]

到此,关于“怎么实现Hikari连接池使用SpringBoot配置JMX监控”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: 怎么实现Hikari连接池使用SpringBoot配置JMX监控

本文链接: https://www.lsjlt.com/news/297626.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Hikari连接池使用SpringBoot配置JMX监控实现
    Hikari是Spring Boot默认的数据库连接池。区别于C3P0直接通过连接池对象获取各项状态指标,Hikari需要通过JMX来获取。Demo如下,采用Spring Boot集...
    99+
    2022-11-12
  • 怎么实现Hikari连接池使用SpringBoot配置JMX监控
    这篇文章主要介绍“怎么实现Hikari连接池使用SpringBoot配置JMX监控”,在日常操作中,相信很多人在怎么实现Hikari连接池使用SpringBoot配置JMX监控问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希...
    99+
    2023-06-20
  • Hikari连接池使用SpringBoot配置JMX监控的方法是什么
    本文小编为大家详细介绍“Hikari连接池使用SpringBoot配置JMX监控的方法是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“Hikari连接池使用SpringBoot配置JMX监控的方法是什么”文章能帮助大家解决疑惑,下面跟...
    99+
    2023-07-06
  • SpringBoot怎么配置Actuator组件实现系统监控
    这篇文章主要介绍“SpringBoot怎么配置Actuator组件实现系统监控”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“SpringBoot怎么配置Actuator组件实现系统监控”文章能帮助大...
    99+
    2023-06-08
  • SSM项目下Druid连接池的配置及数据源监控的使用
    一,连接池的配置 在pom.xml中添加,druid的maven信息 com.alibaba druid 1.1.21 数据源设置: 要在init-method设置init方法,才能在监控页面中查看...
    99+
    2014-05-08
    SSM项目下Druid连接池的配置及数据源监控的使用
  • 使用druid如何实现配置数据库连接池
    本篇文章为大家展示了使用druid如何实现配置数据库连接池 ,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。druid的配置项如下配置缺省值说明name 配置这个属性的意义在于,如果存在多个...
    99+
    2023-05-31
    数据库连接池 druid
  • 使用springboot如何实现配置多个redis连接
    这篇文章将为大家详细讲解有关使用springboot如何实现配置多个redis连接,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。一、springboot nosql 简介Spring Dat...
    99+
    2023-05-31
    springboot redis
  • 使用SpringBoot怎么实现可视化监控
    本篇文章给大家分享的是有关使用SpringBoot怎么实现可视化监控,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。具体如下:1、Spring Boot 应用暴露监控指标【版本 ...
    99+
    2023-06-15
  • 使用springboot怎么实现自动配置
    这篇文章将为大家详细讲解有关使用springboot怎么实现自动配置,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。springboot是什么springboot一种全新的编程规范,其设计目的...
    99+
    2023-06-14
  • 怎么用css实现监控网络连接状态的页面
    这篇文章主要介绍怎么用css实现监控网络连接状态的页面,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!   代码解读   navigator.onLine属性用于获取在线状态,再配...
    99+
    2022-10-19
  • Springboot怎么使用docker-compose实现动态配置
    今天小编给大家分享一下Springboot怎么使用docker-compose实现动态配置的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来...
    99+
    2023-07-05
  • 怎么使用Golang哈希算法实现配置文件的监控功能
    这篇文章主要介绍“怎么使用Golang哈希算法实现配置文件的监控功能”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么使用Golang哈希算法实现配置文件的监控功能”文章能帮助大家解决问题。SHA(...
    99+
    2023-07-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作