当前位置:网站首页 > 数据科学与大数据 > 正文

durid(druid数据库连接池)



在传统的数据库连接中,每一次与数据库连接都会消耗大量的系统资源和时间。数据库连接池会提前创建一定数量的数据库连接保存在池中,用来复用,避免了重复建立连接和关闭连接的开销

优点:

  • 提高性能和效率:可以复用连接,减少建立连接的开销
  • 资源管理:可以限制连接数量,防止数据库连接过大导致资源不足
  • 连接复用:数据库连接池可以管理连接的生命周期,确保连接在需要时处于可用状态,并在不再需要时释放资源,从而减少了系统资源的浪费
  • 连接池监控:数据库连接池通常提供了监控和管理功能,可以实时监控连接的使用情况、连接的状态和性能指标

Druid 是阿里巴巴开源的一个高性能的数据库连接池,GitHub 地址:https://github.com/alibaba/druid 。它不仅提供了传统数据库连接池的连接管理功能,还提供了一系列强大的监控和扩展功能。Druid 的优势主要体现在以下几个方面:

  • 高性能:Druid 是基于 Java 平台开发的,使用了高效的连接池算法和多线程技术,能够提供高性能的数据库连接管理服务。
  • 丰富的监控功能:Druid 提供了丰富的监控功能,包括连接池状态监控、SQL 执行性能监控、SQL 执行分析等,可以实时监控数据库连接的使用情况和性能指标,并生成详细的报表和图表。
  • 安全性:Druid 内置了防 SQL 注入功能和黑名单功能,能够有效防止恶意 SQL 注入攻击和非法访问
  • 灵活的配置:Druid 提供了丰富的配置选项,可以灵活地配置连接池的参数和行为,满足不同场景下的需求。
  • 可扩展性:Druid 提供了插件机制,支持自定义插件和扩展功能,开发人员可以根据需要自定义监控指标、扩展连接池的功能等。
  • 完善的文档和社区支持:Druid 有完善的官方文档和活跃的社区支持,开发人员可以方便地获取帮助和解决问题。

3.1 添加依赖

 

3.2 连接池配置

 

解释一下上面各项配置,都是干啥的:

  1. :指定使用 Druid 连接池。
  2. :初始化连接池大小,即连接池启动时创建的初始化连接数。
  3. :最小连接池数量,连接池中保持的最小空闲连接数。
  4. :最大连接池数量,连接池中允许的最大活动连接数。
  5. :连接时最大等待时间,当连接池中的连接已经用完时,等待从连接池获取连接的最长时间,单位是毫秒。
  6. :连接空闲时是否执行检查。
  7. :配置多久进行一次检测,检测需要关闭的连接,单位是毫秒。
  8. :一个连接在连接池中最小生存的时间,单位是毫秒。
  9. :一个连接在连接池中最大生存的时间,单位是毫秒。
  10. :测试连接是否可用的查询 SQL。
  11. :连接从连接池获取时是否测试连接的可用性。
  12. :连接返回连接池时是否测试连接的可用性。
  13. :是否缓存 PreparedStatement,默认为 false。
  14. :用于配置 Druid 的 Web 监控功能。在这里, 表示是否开启 Web 监控功能。如果设置为 true,就可以通过浏览器访问 Druid 的监控页面。
  15. stat-view-servlet:配置 Druid 的监控后台访问路径、登录用户名和密码。
    • 表示是否开启监控后台功能。
    • 指定了监控后台的访问路径,即通过浏览器访问监控页面时的 URL。
    • 和 分别指定了监控后台的登录用户名和密码,用于访问监控后台时的身份验证。
  16. filter:用于配置 Druid 的过滤器,包括统计过滤器和防火墙过滤器。
    • :配置 Druid 的统计过滤器。 表示是否开启统计功能, 表示是否开启慢 SQL 记录, 指定了执行时间超过多少毫秒的 SQL 语句会被认为是慢 SQL, 表示是否开启 SQL 合并功能。
    • :配置 Druid 的防火墙过滤器。防火墙用于防止 SQL 注入攻击。在这里, 配置了防火墙的规则, 表示是否允许执行多条 SQL 语句。

3.4 监控后台

重启认证服务,访问地址:http://localhost:8080/druid ,即可登录 Druid 监控后台, 如下图所示,用户名和密码填写刚刚 文件中手动配置的:

数据库连接密码加密是为了增强系统的安全性。在配置文件中,明文存储数据库连接密码存在以下几个潜在风险:

  • 泄露风险: 如果配置文件被不当地公开或者泄露,其中包含的数据库连接密码也会暴露给不可信的第三方,从而造成数据库的安全威胁。
  • 权限滥用: 如果系统中的某个用户拥有访问配置文件的权限,那么他就可以直接获取到数据库连接密码。如果这个用户是不可信的,就有可能滥用这个权限,对数据库进行非法操作。
  • 审计追踪: 明文存储密码会降低系统的审计追踪能力。一旦出现安全问题,无法准确追踪是谁在何时何地使用了数据库连接密码。

为了避免以上风险,我们可以采取数据库连接密码加密的方式。加密后的密码可以在配置文件中存储,即使被泄露也不会直接暴露真实的密码,增加了攻击者激活成功教程密码的难度。

4.2 Druid 内置工具加密密码

接下来,我们将通过 Druid 内置的密码加密工具 ,来对明文密码进行加密处理。新建一个 单元测试

 

解释一下上述代码:

  1. :定义了要加密的密码。
  2. :调用 类的 方法生成 RSA 密钥对。RSA 是一种非对称加密算法, 表示密钥长度为 512 位。
  3. 和 :分别打印生成的私钥和公钥。私钥用于加密,公钥用于解密。
  4. :调用 类的 方法,使用生成的私钥对密码进行加密。这里将生成的私钥和密码作为参数传入,返回加密后的密码。
  5. :打印加密后的密码。

    在这里插入图片描述

4.3 配置加密后的密码

接下来,编辑 文件,配置密码加密相关配置,如下图标注所示:

在这里插入图片描述

 

解释一下上述配置项:

  1. :这里的密码改为加密后的密码。
  2. :这里配置了连接属性,其中 表示开启密码解密功能, 是用于解密的密钥,即上面单元测试生成公钥。在 Druid 连接池中,如果我们的密码已经经过了加密处理,就需要在连接属性中配置解密相关的参数,以便 Druid 能够正确解密密码,然后连接到数据库。
  3. :这里配置了 Druid 连接池的 ,其中 是一个配置项, 表示开启该配置项。这个配置项通常用于配置 Druid 连接池的一些额外功能,比如密码解密等。
到此这篇durid(druid数据库连接池)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • 小米手机数据迁移到红米手机(小米手机怎么换机到红米手机)2025-01-19 13:00:06
  • 数据库视频课程(数据库视频讲解)2025-01-19 13:00:06
  • druid数据库连接池(druid数据库连接池不释放)2025-01-19 13:00:06
  • mongodb数据库是国产的吗(mongodb数据库使用)2025-01-19 13:00:06
  • 中文全文数据库有哪些软件(中文全文文献数据库有哪些)2025-01-19 13:00:06
  • 自动驾驶数据集结构(自动驾驶数据平台)2025-01-19 13:00:06
  • 自动驾驶 数据(自动驾驶数据处理项目)2025-01-19 13:00:06
  • oppo数据转移小米(oppo数据迁移小米)2025-01-19 13:00:06
  • 数据特征分析(数据特征分析方法)2025-01-19 13:00:06
  • point数据分析训练营(point 数据分析)2025-01-19 13:00:06
  • 全屏图片