本篇文章小编给大家分享一下SpringBoot集成Druid连接池进行SQL监控的问题代码解析,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看。
Druid连接池是阿里巴巴开源的数据库连接池项目。Druid连接池为监控而生,内置强大的监控功能,监控特性不影响性能。
Druid的监控统计功能是通过filter-chain扩展实现,采集的信息非常全面,包括SQL执行、并发、慢查、执行时间区间分布等。并且Druid内置提供了一个StatViewServlet用于展示Druid的统计信息,提高html页面展示非常完备的监控信息,可以快速诊断系统的瓶颈。
而Druid增加StatFilter之后,能采集大量统计信息,同时对性能基本没有影响。StatFilter对CPU和内存的消耗都极小,对系统的影响可以忽略不计。监控不影响性能是Druid连接池的重要特性。
在SpringBoot工程中引入Druid连接池非常简单。
首先需要引入pom
com.alibaba druid-spring-boot-starter 1.2.6
在yml中增加一些配置
spring: http: encoding: charset: UTF-8 force: true enabled: true datasource: url: jdbc:mysql://xxx.xxx.xxx.xxx:3306/database?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&useSSL=false username: root password : 123456 driverClassName : com.mysql.cj.jdbc.Driver type : com.alibaba.druid.pool.DruidDataSource druid: initialSize: 5 minIdle: 5 maxActive: 20 # 配置获取连接等待超时的时间 maxWait: 60000 # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 timeBetweenEvictionRunsMillis: 60000 # 配置一个连接在池中最小生存的时间,单位是毫秒 minEvictableIdleTimeMillis: 300000 validationQuery: SELECT 1 FROM DUAL testWhileIdle: true testOnBorrow: false testOnReturn: false # 打开PSCache,并且指定每个连接上PSCache的大小 poolPreparedStatements: true maxPoolPreparedStatementPerConnectionSize: 20 # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙 filters: stat,wall,log4j2 # 通过connectProperties属性来打开mergeSql功能;慢SQL记录 connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000 # 合并多个DruidDataSource的监控数据 useGlobalDataSourceStat: true # StatViewServlet配置 sql监控 stat-view-servlet: enabled: true url-pattern: "/druid/*" reset-enable: false login-username: druid login-password: druid123 #允许那些ip allow: 127.0.0.1,192.168.120.93 #禁止那些ip deny: 192.168.120.93 # WebStatFilter配置 web-jdbc关联监控 web-stat-filter: enabled: true url-pattern: "/*" exclusions: "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*"
配置监控页面访问密码,通过设置login-username 和 login-password这两个初始参数。
allow和deny这两个参数,可以做访问控制。deny优先于allow,如果在deny列表中,就算在allow列表中,也会被拒绝。如果allow没有配置或者为空,则只允许127.0.0.1访问。
ip配置格式:
启动服务后,访问http://localhost:8080/druid 就可以访问监控页面。输入访问密码后,可对系统运行情况进行监控。
监控web-jdbc关联