阿里Druid详解

一、阿里Druid用途

阿里Druid是一个JDBC的数据库连接池和监控平台。它可以为你管理连接,监控连接使用情况,以及提供一些统计信息。

可以用Druid来代替DBCP、C3P0、BoneCP、Proxool等连接池。

除此之外,Druid还提供了一个强大的监控平台,可以实时监控数据库连接池和SQL查询情况,并对SQL进行防御。

二、阿里Druid bug

在使用阿里Druid时,我们都可能会遇到一些bug,这些bug可能会影响到我们的应用程序的正常运行。

比如阿里Druid在1.0.3版本中的bug,会导致多线程访问时出现”java.lang.NullPointerException”,同时也会造成数据错误等问题。

鉴于遇到bug时一般是需要修改代码,或者是更新版本,所以在使用Druid的过程中,我们必须要注意版本的选择,以免影响应用程序的正常运行。

三、阿里Druid官方文档

在学习使用阿里Druid时,我们可以去官方网站寻找官方文档,来了解Druid的详细用法与参数说明。

Druid的官方文档中详细介绍了Druid配置参数、使用方法、监控与统计、防御SQL注入、内置功能以及针对不同场景的最佳实践等等。

同时也提供了Spring Boot和Mybatis等框架下应用Druid的简单示例。

四、阿里Druid连接池

Druid作为一个JDBC的数据库连接池,当然也有与连接池相关的一些参数和配置。

Druid连接池的各个参数,例如initialSize、maxActive、minIdle等,可以根据开发需求进行不同的配置。

同时,Druid连接池也可以通过配置参数来进行连接的监控和管理,以保证连接的正常使用。

@Bean
public DataSource dataSource() throws SQLException {
    DruidDataSource dataSource = new DruidDataSource();
    dataSource.setDriverClassName("com.mysql.jdbc.Driver");
    dataSource.setUrl("jdbc:mysql://localhost:3306/test");
    dataSource.setUsername("test");
    dataSource.setPassword("test");
    dataSource.setFilters("stat,wall");
    dataSource.setMaxActive(20);
    dataSource.setInitialSize(1);
    dataSource.setMaxWait(60000);
    dataSource.setMinIdle(1);
    dataSource.setTimeBetweenEvictionRunsMillis(60000);
    dataSource.setMinEvictableIdleTimeMillis(300000);
    dataSource.setValidationQuery("SELECT 1");
    dataSource.setTestWhileIdle(true);
    dataSource.setTestOnBorrow(false);
    dataSource.setTestOnReturn(false);
    dataSource.setPoolPreparedStatements(true);
    dataSource.setMaxOpenPreparedStatements(20);
    dataSource.setConnectionProperties("druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000");
    return dataSource;
}

五、阿里Druid 数据库

Druid支持的数据库类型,一直是我们非常关心的问题之一。

Druid目前支持的数据库类型有:Oracle、DB2、MySQL、Sybase、Derby、PostgreSQL、Microsoft SQL Server、H2等。

这些数据库类型对应的连接方式以及其他相关问题,都在Druid的官方文档中有详细介绍。

六、阿里Druid介绍

阿里Druid是阿里巴巴公司旗下的一个开源项目。

Druid目前是国内较为流行的数据库连接池之一,由于其强大的SQL监控和防御功能,在企业级应用中被广泛使用。

同时,Druid还提供了其他一些实用的功能,例如SQL防火墙、批量更新等等。

七、阿里连接池 Druid

Druid除了是一个JDBC的数据库连接池之外,还具有监控和防御SQL注入等功能,因此也被称为阿里连接池Druid。

连接池Druid是一种面向企业级应用的连接池,可以大大提高应用程序的性能和稳定性,并有效防御SQL注入攻击。

同时,在使用连接池Druid时,我们可以从中获取更多的统计信息和诊断信息,从而对数据库的使用情况有更准确的了解。

八、阿里为什么弃用Druid

虽然Druid被广泛应用于企业级应用中,但阿里巴巴公司也在不断探索更加优秀的数据库连接池。

据悉,阿里巴巴已经出了一个更加强大的连接池,名为Titan。

Titan不仅能够监控数据库连接池和SQL执行情况,还可以分析应用程序的查询方式和代码逻辑,对SQL语句进行高效的优化。

九、Druid被阿里放弃原因

阿里巴巴之所以放弃Druid,一方面是因为Druid在运行大规模分布式应用时的性能和扩展性不够好;另一方面是因为Druid的开发者红蔺对此已经不再投入太多精力,而更关注新技术的开发。

因此,阿里巴巴选择了放弃Druid,而转向Titan等更加先进的技术。

十、Druid数据库选取

Druid可以与多个数据库进行配合使用,使得Druid的应用场景更加广泛。

例如Druid可以和MySQL、Redis、Hbase等数据库进行配合使用,以达到更好的效果。

假设我们需要配合MySQL使用Druid,我们可以这样配置:


    com.alibaba
    mysql-connector-java
    ${mysql.version}


    com.alibaba
    druid-spring-boot-starter
    ${druid.version}

druid:
    datasource:
      url: jdbc:mysql://localhost:3306/test
      username: test
      password: test
      driver-class-name: com.mysql.jdbc.Driver

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/190782.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-11-30 09:06
下一篇 2024-11-30 09:06

相关推荐

  • 阿里云邮箱主机名

    阿里云邮箱主机名是指在阿里云购买并绑定域名后,为邮件服务配置的一个记录类型。在这篇文章中,我们将从多个方面对阿里云邮箱主机名进行详细阐述,帮助您更好地了解它的作用、使用方法和注意事…

    编程 2025-04-27
  • 阿里Python技术手册

    本文将从多个方面对阿里Python技术手册进行详细阐述,包括规范、大数据、Web应用、安全和调试等方面。 一、规范 Python的编写规范对于代码的可读性和可维护性有很大的影响。阿…

    编程 2025-04-27
  • 阿里云Grass使用指南

    本文将为大家详细介绍阿里云Grass平台,包括核心概念、使用场景、基本操作、高级特性等内容,帮助大家全面掌握Grass的使用。 一、核心概念 Grass是阿里云开发的一款全新PAA…

    编程 2025-04-27
  • 神经网络代码详解

    神经网络作为一种人工智能技术,被广泛应用于语音识别、图像识别、自然语言处理等领域。而神经网络的模型编写,离不开代码。本文将从多个方面详细阐述神经网络模型编写的代码技术。 一、神经网…

    编程 2025-04-25
  • Linux sync详解

    一、sync概述 sync是Linux中一个非常重要的命令,它可以将文件系统缓存中的内容,强制写入磁盘中。在执行sync之前,所有的文件系统更新将不会立即写入磁盘,而是先缓存在内存…

    编程 2025-04-25
  • git config user.name的详解

    一、为什么要使用git config user.name? git是一个非常流行的分布式版本控制系统,很多程序员都会用到它。在使用git commit提交代码时,需要记录commi…

    编程 2025-04-25
  • Python输入输出详解

    一、文件读写 Python中文件的读写操作是必不可少的基本技能之一。读写文件分别使用open()函数中的’r’和’w’参数,读取文件…

    编程 2025-04-25
  • Linux修改文件名命令详解

    在Linux系统中,修改文件名是一个很常见的操作。Linux提供了多种方式来修改文件名,这篇文章将介绍Linux修改文件名的详细操作。 一、mv命令 mv命令是Linux下的常用命…

    编程 2025-04-25
  • 详解eclipse设置

    一、安装与基础设置 1、下载eclipse并进行安装。 2、打开eclipse,选择对应的工作空间路径。 File -> Switch Workspace -> [选择…

    编程 2025-04-25
  • nginx与apache应用开发详解

    一、概述 nginx和apache都是常见的web服务器。nginx是一个高性能的反向代理web服务器,将负载均衡和缓存集成在了一起,可以动静分离。apache是一个可扩展的web…

    编程 2025-04-25

发表回复

登录后才能评论