05:springboot使用Druid作为项目数据源(添加监控)

Posted java进阶架构师

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了05:springboot使用Druid作为项目数据源(添加监控)相关的知识,希望对你有一定的参考价值。

用最少的时间,走最正确的进阶架构师之路!



Druid是一个关系型数据库连接池,它是阿里巴巴的一个开源项目。Druid支持所有JDBC兼容数据库,包括了Oracle、mysql、PostgreSQL、SQL Server、H2等。
Druid在监控、可扩展性、稳定性和性能方面具有明显的优势。通过Druid提供的监控功能,可以实时观察数据库连接池和SQL查询的工作情况。使用Druid连接池在一定程度上可以提高数据访问效率。

本章目标

SpringBoot整合Druid完成MySQL数据访问,以及配置Druid监控模块整合。

添加Druid依赖

以后章节不做如何创建项目的讲解了,如果需要了解请到前面的章节查看,谢谢!
因为阿里巴巴开源了druid连接池源码,我们可以通过maven仓库可以获得jar包依赖。访问mvnrepository.com/artifact/com.alibaba/druid选择1.0.29,点击进入后复制maven内容到pom.xml内即可,如下图1所示:

05:springboot使用Druid作为项目数据源(添加监控)

图1

当我们添加maven依赖的时候,项目是不会自动导入的,这时你会看到又下角有个提示,"Enable Auto import"我们点击该选项即可自动下载maven依赖的jar到本地.m2目录并构建到项目中。

添加Druid配置

我们已经将druid添加到我们的项目中,那么接下来我们需要修改application.yml配置文件,添加druid的支持,如下图2所示:

05:springboot使用Druid作为项目数据源(添加监控)

图2

上面配置中的filters:stat表示已经可以使用监控过滤器,这时结合定义一个过滤器,就可以用来监控数据库的使用情况。

初尝试运行项目

我们把第三章:SpringBoot使用SpringDataJPA完成CRUD的数据操作部分代码复制到我们本章项目内,需要复制UserController、UserJPA、UserEntity等到目录结构下,如下图3所示:

05:springboot使用Druid作为项目数据源(添加监控)

图3

上述图3已经把对应的类复制到了本章项目内,我们尝试启动项目,启动日志如下图4所示:

05:springboot使用Druid作为项目数据源(添加监控)

图4

05:springboot使用Druid作为项目数据源(添加监控)

图5

可以看到我们已经可以访问到用户列表数据,证明我们已经配置成功了,如果中途你出现了什么问题请检查copy过来的类导包是否正确、以及application.yml配置文件内的配置是否正确。
我在再来看下IntelliJ IDEA工具控制台的输出日志,如下图6所示:

05:springboot使用Druid作为项目数据源(添加监控)

图6

上述图6内打印了sql语句,而这个sql则是SpringDataJpa自动生成的,我们已经完成了SpringBoot整合Druid连接池的部分,那么我们接下来开启Druid的监控功能。

开启Druid监控功能

开启监控功能,可以在应用运行的过程中,通过监控提供的多维度数据来分析使用数据库的运行情况,从而可以调整程序设计,以便于优化数据库的访问性能。

下面我们来实现Druid的访问Servlet以及Filter,如下图7所示:

05:springboot使用Druid作为项目数据源(添加监控)

图7

05:springboot使用Druid作为项目数据源(添加监控)

图8

上述图8我们看到了我们成功的访问了Druid的监控页面,那么我们现在输入我们在DruidConfiguration内配置的用户名、密码登录监控平台,进入监控平台首页,如下图9所示:

图9

我们已经成功的访问到了监控首页,可以看到大致包含了如下几个模块:数据源、SQL监控、SQL防火墙、Web应用、URI监控、Session监控、JSONAPI等。

数据源

可以看到项目中管理的所有数据源配置的详细情况,除了密码没有显示外其他都在。

SQL监控

可以查看所有的执行sql语句

SQL防火墙

druid提供了黑白名单的访问,可以清楚的看到sql防护情况。

Web应用

可以看到目前运行的web程序的详细信息。

URI监控

可以监控到所有的请求路径的请求次数、请求时间等其他参数。

Session监控

可以看到当前的session状况,创建时间、最后活跃时间、请求次数、请求时间等详细参数。

JSONAPI

通过api的形式访问Druid的监控接口,api接口返回Json形式数据。

总结

上述讲解就是本章的全部内容,本章主要讲解了SpringBoot整合Druid数据库连接池完成SpringDataJpa访问MySQL数据,开启了Druid连接池本身自带的数据监控功能,可以清晰的看到SQL执行以及Session活跃情况,方便优化SQL。



  • 【mysql优化专题】【HTTP协议】

  • 【架构技术专题】【多线程/池专题】

  • 【dubbo专题】【dubbo源码专题】

  • 【JVM调优专题】【HTTP协议专题】

  • 【设计模式专题】【高并发专题】

  • 【架构技术专题】【netty专题】

  • 【数据结构专题】【redis专题】

  • 【spring源码】【springboot专题】

以上是关于05:springboot使用Druid作为项目数据源(添加监控)的主要内容,如果未能解决你的问题,请参考以下文章

SpringBoot MyBatis druid数据库连接池

好用的连接池-druid

springboot集成Druid 作为数据库连接池

SpringBoot 2.x添加Druid作为数据库连接池

SpringBoot项目去除druid监控的底部广告

SpringBoot项目去除druid监控的底部广告