关于java:Spring-Boot-集成-Druid-监控数据源

4次阅读

共计 3387 个字符,预计需要花费 9 分钟才能阅读完成。

关注 Java 后端技术全栈 ”**

回复“面试”获取全套大厂面试材料

Druid 介绍

Druid 是阿里巴巴开源平台上的一个我的项目,整个我的项目由数据库连接池、插件框架和 SQL 解析器组成,该我的项目次要是为了扩大 JDBC 的一些限度,能够让程序员实现一些非凡的需要,比方向密钥服务申请凭证、统计 SQL 信息、SQL 性能收集、SQL 注入查看、SQL 翻译等,程序员能够通过定制来实现本人须要的性能。通常叫 ” 德鲁伊的 ”

Druid 首先是一个数据库连接池,但它不仅仅是一个数据库连接池,还蕴含了一个 ProxyDriver,一系列内置的 JDBC 组件库,一个 SQL Parser。在 Java 的世界中 Druid 是监控做的最好的数据库连接池,在性能、性能、扩展性方面,也有不错的体现。

Druid 有何用?

  • 替换其余 Java 连接池,Druid 提供了一个高效、功能强大、可扩展性好的数据库连接池。
  • 能够监控数据库拜访性能,Druid 内置提供了一个功能强大的 StatFilter 插件,可能具体统计 SQL 的执行性能,这对于线上剖析数据库拜访性能有很大帮忙。
  • 数据库明码加密。间接把数据库明码写在配置文件中,这是不好的行为,容易导致平安问题,DruidDruiver 和 DruidDataSource 都反对 PasswordCallback。
  • SQL 执行日志,Druid 提供了不同的 LogFilter,可能反对 Common-Logging、Log4j 和 JdkLog,能够按须要抉择相应的 LogFilter,监控利用的数据库拜访状况。
  • 扩大 JDBC,如果你要对 JDBC 层有编程的需要,能够通过 Druid 提供的 Filter 机制,很不便编写 JDBC 层的扩大插件。

Spring  Boot 疾速集成 Druid

阿里也未 Druid 提供了 Spring Boot Starter。官网这样解释:

Druid Spring Boot Starter 用于帮忙你在 Spring Boot 我的项目中轻松集成 Druid 数据库连接池和监控。

Druid Spring Boot Starter 次要做了哪些事件呢?其实这个组件包很简略,次要提供了很多自动化的配置,依照 Spring Boot 的理念对很多内容进行了预配置,让咱们在应用的时候更加的简略和不便。

增加依赖包

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.1.10</version>
</dependency>
<!-- 自启动 Druid 治理后盾 -->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid-spring-boot-starter</artifactId>
    <version>1.1.10</version>
</dependency>

application.properties 中增加 druid 的配置项

properties
#config druid
#连接池的设置
#初始化时建设物理连贯的个数
spring.datasource.druid.initial-size=5
#最小连接池数量
spring.datasource.druid.min-idle=5
#最大连接池数量 maxIdle 曾经不再应用
spring.datasource.druid.max-active=20
#获取连贯时最大等待时间,单位毫秒
spring.datasource.druid.max-wait=60000
#申请连贯的时候检测,如果闲暇工夫大于 timeBetweenEvictionRunsMillis,执行 validationQuery 检测连贯是否无效。spring.datasource.druid.test-while-idle=true
#既作为检测的间隔时间又作为 testWhileIdel 执行的根据
spring.datasource.druid.time-between-eviction-runs-millis=60000
#销毁线程时检测以后连贯的最初流动工夫和以后时间差大于该值时,敞开以后连贯
spring.datasource.druid.min-evictable-idle-time-millis=30000
#用来检测连贯是否无效的 sql 必须是一个查问语句
#mysql 中为 select 'x'
#oracle 中为 select 1 from dual
spring.datasource.druid.validation-query=select 'x'
#申请连贯时会执行 validationQuery 检测连贯是否无效, 开启会升高性能, 默认为 true
spring.datasource.druid.test-on-borrow=false
#偿还连贯时会执行 validationQuery 检测连贯是否无效, 开启会升高性能, 默认为 true
spring.datasource.druid.test-on-return=false
#当数据库抛出不可复原的异样时, 摈弃该连贯
#spring.datasource.druid.exception-sorter=true
#是否缓存 preparedStatement,mysql5.5+ 倡议开启
#spring.datasource.druid.pool-prepared-statements=true
#当值大于 0 时 poolPreparedStatements 会主动批改为 true
spring.datasource.druid.max-pool-prepared-statement-per-connection-size=20
#配置扩大插件
spring.datasource.druid.filters=stat,wall
#通过 connectProperties 属性来关上 mergeSql 性能;慢 SQL 记录
spring.datasource.druid.connection-properties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500
#合并多个 DruidDataSource 的监控数据
spring.datasource.druid.use-global-data-source-stat=true
#设置拜访 druid 监控页的账号和明码, 默认没有
#spring.datasource.druid.stat-view-servlet.login-username=admin
#spring.datasource.druid.stat-view-servlet.login-password=admin

而后启动我的项目。

拜访地址:http://localhost:8080/druid/webapp.html

如果把配置项中

spring.datasource.druid.stat-view-servlet.login-username=admin
spring.datasource.druid.stat-view-servlet.login-password=admin

去掉正文,再次启动。

拜访地址:http://localhost:8080/druid/webapp.html

登录进去

首页会展现我的项目应用的 JDK 版本、数据库驱动、JVM 相干统计信息。依据下面的菜单能够看出 Druid 的性能十分弱小,反对数据源、SQL 监控、SQL 防火墙、URI 监控等很多性能。

咱们这里申请一下后面文

http://localhost:8080/mybatis

点击 SQL 监控

能够看到 SQL 的执行状况,还能够设置刷新 SQL 监控的工夫。

这里的 SQL 监控会将我的项目中具体执行的 SQL 打印进去,展现此 SQL 执行了多少次、每次返回多少数据、执行的工夫散布是什么。这些性能十分的实用,不便咱们在理论生产中查找出慢 SQL,最初对 SQL 进行调优。

OK,明天就分享到此,是不是感觉 Spring Boot 集成 Druid 其实还是蛮简略的。

码字不易,望点 在看 + 分享,谢谢!

举荐浏览

如何优雅的导出 Excel

终于明确为什么要加 final 关键字了!

正文完
 0