Spring Boot 整合 Druid 并开启监控

06-01 1217阅读

文章目录

  • 1. 引言
  • 2. 添加依赖
  • 3. 配置数据源
  • 4. 开启监控功能
  • 5. 自定义 Druid 配置(可选)
  • 6. 访问监控页面
  • 7. 注意事项
  • 8. 总结

    Druid 是一个由阿里巴巴开源的高性能数据库连接池,它不仅提供了高效的连接管理功能,还自带了强大的监控和统计特性。将 Druid 与 Spring Boot 结合使用,可以显著提高应用程序的数据访问性能,并且通过内置的监控页面,开发者能够实时监控数据库连接的状态、SQL 执行情况等重要信息。

    1. 引言

    随着互联网应用的快速发展,对数据库连接池的要求也越来越高。传统的连接池可能无法满足现代应用对于高性能和高可用性的需求。而 Druid 凭借其优秀的性能优化、详细的监控数据以及灵活的配置选项,成为了许多开发者的首选。接下来,我们将一步步展示如何在 Spring Boot 中引入 Druid,并启用它的监控功能。

    2. 添加依赖

    首先,在你的 pom.xml 文件中添加 Druid 的 Maven 依赖:

        com.alibaba
        druid-spring-boot-3-starter
        1.2.24
    
    

    如果你使用的是 Gradle 构建工具,则可以在 build.gradle 文件中添加如下内容:

    implementation 'com.alibaba:druid-spring-boot-3-starter:1.2.24'
    

    3. 配置数据源

    接下来,在 application.properties 或 application.yml 文件中配置 Druid 数据源的相关参数。这里以 .properties 文件为例:

    # Druid 数据源配置
    spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
    spring.datasource.druid.initial-size=5
    spring.datasource.druid.min-idle=5
    spring.datasource.druid.max-active=20
    spring.datasource.druid.test-on-borrow=true
    spring.datasource.druid.validation-query=SELECT 1 FROM DUAL
    # 监控页面设置
    spring.datasource.druid.web-stat-filter.enabled=true
    spring.datasource.druid.stat-view-servlet.enabled=true
    spring.datasource.druid.stat-view-servlet.login-username=druid
    spring.datasource.druid.stat-view-servlet.login-password=d1234
    

    yaml示例:

    spring:
      datasource:
        url: jdbc:mysql://127.0.0.1:3306/test?characterEncoding=utf8&useSSL=false
        username: root
        password: 1234
        type: com.alibaba.druid.pool.DruidDataSource
        druid:
          test-on-borrow: true
          validation-query: SELECT 1 FROM DUAL
          web-stat-filter:
            enabled: true
          stat-view-servlet:
            enabled: true
            login-username: druid
            login-password: d1234
    

    上述配置项包括了连接池的基本参数(如初始大小、最小空闲连接数、最大活动连接数等),同时也启用了 Druid 的 Web 统计过滤器和统计视图 Servlet,并设置了登录用户名和密码用于访问监控页面。

    4. 开启监控功能

    为了更好地管理和监控 Druid 连接池的工作状态,我们需要开启 Druid 提供的监控功能。这可以通过配置文件中的几个关键属性来实现:

    • WebStatFilter:用于收集 Web 应用程序的 SQL 慢查询日志。
    • StatViewServlet:提供了一个可视化的监控页面,可以查看连接池的各项指标。

      确保在 application.properties 或 application.yml 中启用了这两个组件:

      # 启用 WebStatFilter 和 StatViewServlet
      spring.datasource.druid.web-stat-filter.enabled=true
      spring.datasource.druid.stat-view-servlet.enabled=true
      

      此外,还可以进一步自定义监控页面的安全策略,比如允许或限制特定 IP 地址访问、设置更多的登录凭证等。

      5. 自定义 Druid 配置(可选)

      如果默认配置不能满足你的需求,你可以创建一个自定义的 Druid 配置类来覆盖默认设置。例如:

      @Configuration
      public class DruidConfig {
          @ConfigurationProperties(prefix = "spring.datasource.druid")
          @Bean
          public DruidDataSource druidDataSource() {
              return new DruidDataSource();
          }
          // 如果需要,可以在这里添加更多配置,如过滤器、拦截器等
          @Bean
          public ServletRegistrationBean statViewServlet() {
              ServletRegistrationBean bean = new ServletRegistrationBean(new StatViewServlet(), "/druid/*");
              Map params = new HashMap();
              params.put("loginUsername", username);
              params.put("loginPassword", password);
              params.put("allow", "localhost");
              params.put("deny", "");
              bean.setInitParameters(params);
              return bean;
          }
          @Bean
          public FilterRegistrationBean webStatFilter() {
              FilterRegistrationBean bean = new FilterRegistrationBean();
              bean.setFilter(new WebStatFilter());
              Map params = new HashMap();
              params.put("exclusions", "*.js,*.css,/druid/*");
              bean.setUrlPatterns(Arrays.asList("/*"));
              bean.setInitParameters(params);
              return bean;
          }
      }
      

      6. 访问监控页面

      完成上述配置后,启动 Spring Boot 应用程序,然后打开浏览器并访问以下 URL 来查看 Druid 的监控页面:

      http://localhost:8080/druid/
      

      使用之前设置的用户名和密码登录后,你将看到一个包含详细连接池信息和 SQL 查询统计的界面。通过这个页面,你可以轻松地监控数据库连接的状态、分析 SQL 性能瓶颈等问题。

      Spring Boot 整合 Druid 并开启监控

      7. 注意事项

      • 生产环境安全:在生产环境中部署时,请务必加强对监控页面的访问控制,避免敏感信息泄露。
      • 性能影响:虽然 Druid 的监控功能非常有用,但在高并发场景下可能会对系统性能产生一定影响。因此,在实际应用中应权衡利弊,合理配置监控级别。
      • 更新维护:定期检查 Druid 版本更新,及时修复已知漏洞和问题,保持系统的稳定性和安全性。

        8. 总结

        通过以上步骤,我们成功地在 Spring Boot 应用中集成了 Druid 数据库连接池,并开启了其监控功能。这不仅提高了数据库访问的效率,还为开发者提供了宝贵的调试和优化工具。希望这篇文章能够帮助你。

        更多配置或使用请参考官方文档:https://github.com/alibaba/druid

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们。

目录[+]

取消
微信二维码
微信二维码
支付宝二维码