(十三)从零搭建后端框架——Druid,不仅仅是SQL监控

2,114 阅读3分钟

前言

【MyBatis使用和不足思考】这一篇文章中, 指出了MyBatis使用的不足。如下:

  1. 每个实体都需要写增删改查SQL,感觉重复劳动
  2. 没有分页插件,分页查询比较麻烦
  3. 没有单元测试,接口测试比较麻烦
  4. 没有SQL监控,不能统计SQL的运行情况

在前面几篇文章中,已经解决前三个问题。该文章就来解决监控的问题。

Druid为监控而生的数据库连接池,下面来实际操作下.

具体实现

Maven依赖

<dependencies>
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>druid-spring-boot-starter</artifactId>
        <version>1.1.14</version>
    </dependency>
</dependencies>

Druid监控页面

Druid有自己的监控页面,要想访问只需要配置参数spring.datasource.druid.stat-view-servlet.enabled=true即可。

启动项目后,访问http://localhost:8080/druid,看到监控页面。

监控页面

因为监控页面里的信息是比较敏感的,所以一般都会对其进行登录验证。 要想实现登录验证,只需要配置如下参数:

# 指定登录的账号和密码
spring.datasource.druid.stat-view-servlet.login-username=root
spring.datasource.druid.stat-view-servlet.login-password=123456

重启项目后,访问会发现需要登录才能访问。

登录

再来看监控页面的TAB页,会发现上面功能有数据源、SQL监控、SQL防火墙、Web应用、URL监控、Session监控、Spring监控。

但实际上默认只能查看数据源,其它默认都是关闭的,下面来逐一配置。

SQL监控和SQL防火墙

通过配置spring.datasource.druid.filters=stat,wall开启SQL监控和SQL防火墙。

执行访问数据库的操作后,在SQL监控页面就可以看到执行SQL的执行次数、时间等信息,如下:

SQL监控

SQL防火墙页面,可以看到表访问、白名单统计、黑名单统计等信息,如下:

SQL防火墙

Web应用和URL监控

通过配置spring.datasource.druid.web-stat-filter.enabled=true开启Web应用和URL监控。

WEB应用页面,可以查看项目的一些信息,如下:

WEB应用

URL监控页面,可以查看请求的URI信息,包括请求时间、最大并发数等信息,如下:

URL监控

Session监控

通过配置spring.datasource.druid.web-stat-filter.session-stat-enable=true开启Session监控。 在Session监控页面,可以查看每个Session的执行信息,如下:

Session监控

Spring监控

通过配置spring.datasource.druid.aop-patterns=com.zhuqc.framework.*指定Spring监控的范围。 在Spring监控页面,可以查看类中,每个方法的执行次数、执行时间等信息,如下:

Spring监控

完整配置

spring:
  datasource:
    druid:
      stat-view-servlet:
        # 开启Druid监控页面
        enabled: true
        # 访问路径
        url-pattern: /druid/*
        # 设置账号密码
        login-username: root
        login-password: 123456
        # 重置按钮
        reset-enable: true
      web-stat-filter:
        # 开启Web应用 URI监控
        enabled: true
        # 开启Session监控
        session-stat-enable: true
        # 拦截路径
        url-pattern: /*
      # 开启SQL监控 SQL防火墙
      filters: stat,wall
      # 开启Spring监控
      aop-patterns: com.zhuqc.framework.*

总结

Druid的监控功能还是很强大的,不仅限于对SQL进行监控。而且Druid使用很方便,不需要进行代码编写,仅仅是添加一些配置即可。

以上,感谢阅读,如果感觉有帮助的话,不妨随手点个赞!

源码

github.com/zhuqianchan…

往期回顾