Druid安装指南
- 1. druid简介
- 1.1数据库连接池
- 2. 安装前的环境准备
- 3. 安装步骤
- 3.1 引入maven依赖
- 3.1 编写配置文件
- 3.3 启动Druid Monitor
- 4. druid使用指南
- 4.1 数据源
- 4.2 SQL监控
- 4.3 SQL防火墙
- 4.4 web应用
- 4.5 URI监控
1. druid简介
druid是阿里开源的一个数据库连接池的解决方案。它本身还自带一个监控平台,可以查看时时产生的sql、uri等监控数据,可以排查慢sql、慢请求,方便对sql和项目代码进行调优。
1.1数据库连接池
数据库连接池是一种用于管理和复用数据库连接的技术。在应用程序与数据库之间建立连接是一项开销较大的操作,而连接池的目标是通过预先建立一组数据库连接,然后在应用程序需要时分配和复用这些连接,以减少连接建立和断开的开销,提高数据库访问的效率和性能。
2. 安装前的环境准备
1、springboot项目
<!--父工程--><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.3.12.RELEASE</version></parent>
2、mysql版本:5.7
3. 安装步骤
3.1 引入maven依赖
<!--druid依赖--><dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>1.1.10</version></dependency>
3.1 编写配置文件
配置文件放在
spring:#数据库连接配置datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://xxx.xxx.xxx:3306/xxxxxx?autoReconnect=true&useSSL=false&characterEncoding=utf-8&serverTimezone=Asia/Shanghai&allowMultiQueries=trueusername: xxxxpassword: xxxx#druid数据源配置druid:# 初始化连接池大小initialSize: 5# 最小连接数minIdle: 5# 最大连接数maxActive: 40# 获取连接时的最大等待时间maxWait: 60000#间隔多长时间进行一次检测;timeBetweenEvictionRunsMillis: 60000#配置一个最小的生存对象的空闲时间 minEvictableIdleTimeMillis: 300000validationQuery: SELECT 1testWhileIdle: true#申请连接时执行validationQuery检测连接是否有效,默认true,开启后会降低性能testOnBorrow: false#归还连接时执行validationQuery检测连接是否有效,默认false,开启后会降低性能testOnReturn: falsepoolPreparedStatements: true#配置监控统计拦截的filters。stat:监控统计、wall:防御sql注入、log4j:日志记录filters: stat,log4jmaxPoolPreparedStatementPerConnectionSize: 20useGlobalDataSourceStat: true#执行时间超过3000毫秒的sql会被标记为慢sqlconnectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=3000#配置过滤器,过滤掉静态文件web-stat-filter:enabled: trueurl-pattern: /*exclusions: /druid/*,*.js,*.css,*.gif,*.jpg,*.bmp,*.png,*.ico#配置可视化控制台页面stat-view-servlet:filter:stat:merge-sql: false enabled: true#访问德鲁伊监控页面的地址url-pattern: /druid/*#IP白名单 没有配置或者为空 则允许所有访问allow: xxx.xxx.xxx#IP黑名单 若白名单也存在 则优先使用#deny: ip地址#禁用重置按钮reset-enable: true#登录所用的用户名与密码login-username: adminlogin-password: 123456
3.3 启动Druid Monitor
运行项目以后德鲁伊就开始工作了。上面配置文件中配置了访问德鲁伊控制台的地址,打开控制台直接在项目路径后拼接/druid/index.html
4. druid使用指南
4.1 数据源
在数据源这里可以看到连接池的情况,包括配置文件中配置的连接数等参数,以及没有配置的一些默认参数。
数据源的下半部分可以看到一些时时产生的数据,这些参数都附带了解释,一些重要的数据有:
- 等待线程数量 :当前等待获取连接的线程数
- 事务启动数 :事务开始的个数
- 事务时间分布 :事务运行时间分布,分布区间为[0-10 ms, 10-100 ms, 100-1 s, 1-10 s, 10-100 s, >100 s]
- 池中连接数峰值 :连接池中数目的峰值
- 活跃连接数 :当前连接池中活跃连接数
- 执行数 :所有连接执行的任务数
- 事务回滚数 :事务失败回滚的次数
- 连接持有时间分布:连接持有时间分布,分布区间为[0-1 ms, 1-10 ms, 10-100 ms, 100ms-1s, 1-10 s, 10-100 s, 100-1000 s, >1000 s]
4.2 SQL监控
我们在配置文件中配置了慢sql的执行时间为3秒钟,这里会将超过3秒钟的sql标红,方便我们一眼就看到。可以从下图看到有两个mansql,并把sql显示了出来,我们可以针对性的进行sql优化。
执行分布时间一共有8个档位,在上述数据源里已经看到了这8个档位的含义。
可以看到最大并发数是40,这是因为在配置文件中配置了最大连接数为40,可以根据实际情况调整参数。
点击左侧蓝色的sql,可以查看更详细的视图。
4.3 SQL防火墙
记录配置文件中配置的黑、白名单的拦截信息,我这里没有配也没有数据。
4.4 web应用
可以看到整个项目的运行数据,主要记录的还是和数据库打交道的一些数据。
4.5 URI监控
有不少中间件都能实现对于URI的监控(sentinel、skywalking、zipkin等),德鲁伊侧重的是和数据库连接产生的数据,可以结合多个监控的数据一起参考。