当前位置:网站首页 > R语言数据分析 > 正文

druid监控页面分析(druid 监控页面)




如果我的文章对您有帮助,请关注支持下作者的公众号:极客挖掘机,获取最新干货推送:)

在上一篇文章《Spring Boot (三): ORM 框架 JPA 与连接池 Hikari》 我们介绍了 JPA 与连接池 Hikari 的整合使用,在国内使用比较多的连接池还有 一个是阿里开源的 Druid 。本篇文章我们就来聊一聊 Druid 的一些使用姿势。

1. Druid 是什么?

我们先来看一下官方的回答:

Druid 是 Java 语言中最好的数据库连接池。 Druid 能够提供强大的监控和扩展功能。

说 Druid 是 Java 语言中最好的数据库连接池,这个笔者个人觉得有些吹牛了,至少在性能上和我们上一篇介绍的 Hikari 是没得比的,相关的性能测试在网上能找到很多,笔者这边就不列举了。但是 Druid 在其他的一些方面就做的比较出色了,功能非常丰富:

  • 可以监控数据库访问性能, Druid 内置提供了一个功能强大的StatFilter插件,能够详细统计 SQL 的执行性能,这对于线上分析数据库访问性能有帮助。
  • 数据库密码加密。直接把数据库密码写在配置文件中,这是不好的行为,容易导致安全问题。 DruidDruiver 和 DruidDataSource 都支持 PasswordCallback 。
  • SQL 执行日志, Druid 提供了不同的 LogFilter ,能够支持 Common-Logging 、 Log4j 和 JdkLog ,你可以按需要选择相应的 LogFilter ,监控你应用的数据库访问情况。
  • 扩展 JDBC ,如果你要对 JDBC 层有编程的需求,可以通过 Druid 提供的 Filter 机制,很方便编写 JDBC 层的扩展插件。

2. Spring Boot 应用中如何使用

目前 Druid 官方为我们提供了两种使用依赖方式,一种是基于传统 Java 工程提供的依赖包, maven 坐标如下:

还有一种是基于 Spring Boot 提供的依赖包, maven 坐标如下:

下面的这种依赖包除了包含了上面的那种 Druid 基础包,还包含了 Spring Boot 自动配置的依赖包以及 sl4j-api ,我们在 Spring Boot 中使用 Druid ,当然是推荐各位读者使用第二种方式引入依赖。


3. 工程实战

3.1 创建父工程 spring-boot-jpa-druid

父工程 pom.xml 如下:

代码清单:spring-boot-jpa-druid/pom.xml

  • 笔者这里使用的 Druid 依赖包是 ,版本号为 1.1.20。

3.2 数据库密码不加密的配置文件 application-pass.yml 如下:

代码清单:spring-boot-jpa-druid/src/main/resources/application-pass.yml

  • 相关配置的含义已经写在注释中了,这里有一点要讲一下,当我们要配置统计信息(包括监控信息) 输出至日志中,合并多个DruidDataSource的监控数据 不可开启,否则启动会报错。
  • :因为 Druid 的扩展是通过 Filter 插件的形式来开启的,这里我们开启了 和 ,这俩个分别为监控和防御 SQL 注入攻击。 Druid 还提供了一些其他默认的 Filter ,如下表:
Filter类名别名defaultcom.alibaba.druid.filter.stat.StatFilterstatcom.alibaba.druid.filter.stat.StatFiltermergeStatcom.alibaba.druid.filter.stat.MergeStatFilterencodingcom.alibaba.druid.filter.encoding.EncodingConvertFilterlog4jcom.alibaba.druid.filter.logging.Log4jFilterlog4j2com.alibaba.druid.filter.logging.Log4j2Filterslf4jcom.alibaba.druid.filter.logging.Slf4jLogFiltercommonloggingcom.alibaba.druid.filter.logging.CommonsLogFilterwallcom.alibaba.druid.wall.WallFilter

从名称上可以看出来,主要是一些编码和日志的相关 Filter 。

3.3 数据库密码加密

在生产环境中,直接在配置文件中暴露明文密码是一件非常危险的事情,出于两点考虑:对外,即使应用服务被入侵,数据库还是安全的;对内,生产环境的数据库密码理论上应该只有 dba 知道,但是代码都是在代码仓库中放着的,如果密码没有加密,每次发布前 dba 都需要手动修改配置文件后再进行打包编译。

首先,我们需要生成数据库密码的密文,需要在命令行中执行如下命令:

输出如下:

这里我们需要将生成的公钥 和密码 加入配置文件中, 如下:

代码清单:spring-boot-jpa-druid/src/main/resources/application-decrypt.yml

  • 已省略部分配置,有需要的读者可以访问 Github 仓库获取。

3.4 配置文件 如下:

代码清单:spring-boot-jpa-druid/src/main/resources/application.yml

其余的测试代码同上一篇文章《Spring Boot (三): ORM 框架 JPA 与连接池 Hikari》,有兴趣的读者可以访问 Github 仓库获取,笔者这里就不一一列举了。

4. 测试

我们在主配置文件中,选择密码加密的配置文件启动,将 配置为 ,点击启动,可以看到工程正常启动,查看控制台输出日志,其中有这么一句:

可以看到,我们配置的监控信息输出会在系统启动的时候先输出一次,我们在配置文件中配置的是每5分钟输出一次,等十分钟看一下控制台的输出信息,结果如下:

从时间上可以看出,确实是每5分钟会输出一次。

打开浏览器访问:http://localhost:8080/druid/ ,查看 Druid 监控页面,结果如图:


我们可以进行一些接口测试,在查看监控页面,可以看到所有的 SQL 都正常记录,如图:




同时,我们看一下后台的日志打印,是否正常打出记录的日志,截取打印部分,如下:

可以看到,日志中打印了我们执行的 SQL 相关的信息,和我们在监控页面看到的信息完全一致。

至此,测试成功,篇幅原因,一些测试过程未列出,各位感兴趣的读者朋友可以自己动手尝试一下。

5. 示例代码

示例代码-Github:

https://github.com/meteor1993/spring-boot-examples/tree/master/spring-boot-jpa-druid

示例代码-Gitee:

https://gitee.com/inwsy/spring-boot-examples/tree/master/spring-boot-jpa-druid

6. 参考

《Druid 官方文档》:

https://github.com/alibaba/druid/wiki

到此这篇druid监控页面分析(druid 监控页面)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • cruise m下载(cruise2019破解版安装教程)2025-08-20 08:27:04
  • linux yum命令详解(linux yum rz)2025-08-20 08:27:04
  • hrnetone属于什么档次(hrien是什么牌子)2025-08-20 08:27:04
  • store苹果商店为什么下载不了软件(苹果商店怎么下载不了apple store)2025-08-20 08:27:04
  • treeplan下载(treearia下载)2025-08-20 08:27:04
  • crrna是什么(crna是什么意思)2025-08-20 08:27:04
  • car play车载怎么断开连接(carplay如何断开连接)2025-08-20 08:27:04
  • tornadoes(Tornadoes什么意思)2025-08-20 08:27:04
  • awvs下载安装教程(awr安装教程)2025-08-20 08:27:04
  • treesoft破解版(tree world安卓破解版)2025-08-20 08:27:04
  • 全屏图片