4.2 Druid 连接池

数据源连接池

当我们掌握了 Java 数据库的操作能力后,就必然会面对一个新的问题,那就是性能优化,一般来说数据源连接池是最佳的优化方案,可以对比想想之前学习的线程池知识。

采用数据源连接池方案可以极大的提高了数据处理能力,因为Java 连接数据库是比较耗时的,如果每次查询都重新连接数据库那样性能非常低下。换成连接池以后,我们的数据库操作就无需每次都去连接数据库,只是复用连接,从而完成性能的提升

这个概念还是希望大家能够记住的,因为有的时候面试会经常提问到

基于性能的考虑,目前 SpringBoot 官方集成的连接池是 HikariCP,这个是现在所有方案里性能最佳的,SpringBoot 也是默认就集成好了,并不需要我们额外处理。但是今天我们想介绍的是阿里巴巴出品的Druid,它有如下优势

  • 性能优越(目前略低于 HikariCP)
  • 扩展能力极强
  • 具备 SQL 拦截功能
  • 具备数据统计分析功能,比如慢 SQL 分析

当大家再维护一个产品的时候,你会发现除了性能需要考虑,还需要考虑可维护性,那么监控就是我们最重要的手段,而 Druid 在这方面做的非常好,所以我们还是强烈建议使用 Druid,而且这个框架在阿里巴巴已经使用了很多年非常稳定,至于其他的方案我们就不推荐和分析了

为了使用 Druid ,你需要在 pom.xml 文件里添加依赖

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

目前最新的是这个版本,保持更新就好

Druid 的配置项是比较多的,具体的大家可以看 Druid Spring Boot Starter 中文文档

我们继续看一下如何开启监控,你需要在 application.properties 文件里增加配置项

spring.datasource.druid.stat-view-servlet.enabled=true
spring.datasource.druid.stat-view-servlet.url-pattern=/druid/*
spring.datasource.druid.stat-view-servlet.login-username=druid
spring.datasource.druid.stat-view-servlet.login-password=druid
spring.datasource.druid.stat-view-servlet.allow=
spring.datasource.druid.stat-view-servlet.deny=

上面的login-usernamelogin-password 是可以自己定义的哦

我们运行看看,如果是本地访问地址是http://localhost:8080/druid/login.html

大家如果运行在本地,可以看一下视频
https://style.youkeda.com/img/ham/course/j6/druid.mp4

以后我们就可以通过查看SQL监控来进行监控啦,这里会把慢SQL给打印出来的,这个还是非常实用的性能优化方案,大家记住就可以了

posted @ 2024-11-03 15:25  芝麻番茄  阅读(76)  评论(0)    收藏  举报