1:Druid
Druid 是一个 JDBC 组件库,包含数据库连接池、SQL Parser 等组件, 被大量业务和技术产品使用或集成,经历过最严苛线上业务场景考验,是你值得信赖的技术产品。(官方说法)
Druid在Github的首页
2:配置Druid
2.1:引入starter
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.17</version>
</dependency>
2.2:配置数据源
spring:
datasource:
url: jdbc:mysql://localhost:3306/
driver-class-name: com.mysql.jdbc.Driver
username:
password:
type: com.alibaba.druid.pool.DruidDataSource
druid:
max-active: 10
min-idle: 5
initial-size: 3
filters: stat,wall filters
filter:
stat: #
slow-sql-millis: 1000
logSlowSql: true
enabled: true
wall: #WallFilter
enabled: true
config:
drop-table-allow: false
- 如果在dataSource下直接配置
max-active(最多连接数),initial-size(初始化连接数)这些信息,可能会没有提示,且不会生效,需要在druid下进行配置。 - 更多druid属性配置可以在DruidAbstractDataSource/DruidDataSource 类中寻找。
- filters可以组合配置,
<property name="filters" value="stat,log4j" />
- 常用的stat(sql监控),wall(防火墙)等Filter在DruidFilterConfiguration中寻找。
- StatFilter别名stat,WallFilter别名wall,Log4j2Filter别名log4j,ConfigFilter别名config…
- 更多Filter配置信息可在对应的XXXFilter类寻找,WallFilter存在WallConfig配置类,里面定义很多sql防御属性
2.3:监控页StatViewServlet
Druid内置提供了一个StatViewServlet用于展示Druid的统计信息。
stat-view-servlet: #监控页
login-username:
login-password:
enabled: true
resetEnable: false
监控页在DruidStatViewServletConfiguration->DruidStatProperties->StatViewServlet下可以查看更多属性配置:
2.4:Web监控WebStatFilter
WebStatFilter用于采集web-jdbc关联监控的数据。
web-stat-filter:
enabled: true
url-pattern: /*
exclusions: '*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*'
Web监控在DruidWebStatFilterConfiguration->DruidStatProperties->WebStatFilter下面查看更多属性配置:
2.5:Spring组件监控
private String[] aopPatterns监控Spring的组件:
aop-patterns: 具体监控的包 #监控组件
3:查看Druid效果
3.1:输入/druid即可跳转到监控页
3.2:登录到监控页
输入在监控页配置的用户名,密码
3.3:查看监控效果
3.3.1:数据源
数据源和配置的数据一致:
3.3.2:Sql监控
3.3.3:Sql防火墙
3.3.4:Web监控
3.3.5:URL监控
3.3.6:Session监控
3.3.7:Spring组件监控
4:Druid官方配置
官方配置连接:
搜索需要配置的组件即可。