一、阿里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} druid: datasource: url: jdbc:mysql://localhost:3306/test username: test password: test driver-class-name: com.mysql.jdbc.Driver com.alibaba druid-spring-boot-starter ${druid.version}