您的位置:首页 > 产品设计 > UI/UE

Druid是什么

2015-06-04 18:47 741 查看


Druid是什么?

Druid是一个JDBC组件,它包括四个部分:

DruidDriver 代理Driver,能够提供基于Filter-Chain模式的插件体系。
DruidDataSource 高效可管理的数据库连接池。
SQLParser
扩展组件
Binary: http://code.alibabatech.com/mvn/releases/com/alibaba/druid/0.1.2/druid-0.1.2.jar
Source: http://code.alibabatech.com/mvn/releases/com/alibaba/druid/0.1.2/druid-0.1.2-sources.jar


Druid可以做什么?

可以监控数据库访问性能,Druid内置提供了一个功能强大的StatFilter插件,能够详细统计SQL的执行性能,这对于线上分析数据库访问性能有帮助。
替换DBCP和C3P0。Druid提供了一个高效、功能强大、可扩展性好的数据库连接池。
数据库密码加密。直接把数据库密码写在配置文件中,这是不好的行为,容易导致安全问题。DruidDruiver和DruidDataSource都支持PasswordCallback。
SQL执行日志,Druid提供了不同的LogFilter,能够支持Common-Logging、Log4j和JdkLog,你可以按需要选择相应的LogFilter,监控你应用的数据库访问情况。
扩展JDBC,如果你要对JDBC层有编程的需求,可以通过Druid提供的Filter机制,很方便编写JDBC层的扩展插件。

DruidDriver,是一个ProxyJdbcDriver,它提供了Filter-Chain模式的扩展机制,使得在Jdbc扩展编程特别方便。

Druid提供了一些内置的扩展机制,包括StatLogTrace、HA等扩展。

DruidDataSource是一个数据库连接池的实现,它的设计目标是提供一个当前最好的数据库连接池,在性能、扩展性等方面取得最合适的平衡,取代DBCP、C3P0等连接池。

高性能。测试数据表明,Druid比DBCP、C3P0、BoneCP的性能都好很多。具体请看测试数据
可管理性,DruidDataSource本身提供了很多监控属性,具体看这里。DruidDataSource支持StatFilter,具体配置看 这里
可扩展性,提供基于Filter-Chain模式的扩展机制。具体自定义扩展的例子看这里
替换DBCP,配置和DBCP兼容,可以方便替换DBCP。
适合大规模应用。结合Alibaba使用数据库连接池的经验,避免一些已知问题,例如数据库不可用恢复之后产生的连接风暴问题等。


设计

这是DruidDataSource的设计图示:

http://code.alibabatech.com/svn/druid/trunk/doc/druid-pool.txt

如果发现有乱码,请选择utf-8的编码方式查看。

Druid提供一个手工编写的高性能的方便扩展的SQL Parser。将会支持MySQL、Oracle等流行关系数据库的SQL Parser。

Parser组件包括如下几个部分:

Lexer 词法解析
Parser,Parser包括ExprParser,各种StatementParser。
AST, Abstract Syntax Tree。ParserParse出来的结果就是AST。
Visitor。对AST做各种处理,比如FormatOutput,遍历等等。


简介

Druid提供了强大的监控功能,能够监控连接池行为和SQL执行情况,让你能够详细了解应用的数据库访问行为。


监控对象

Druid的统计信息定义代码实现在com/alibaba/druid/stat下。所有的Stat都全局静态变量的方式保存,这样做使得外部获取监控信息更容易。
获取Druid监控信息的入口是com.alibaba.druid.stat.JdbcStatManager
Druid的监控统计信息都是通过StatFilter来实现的,如果你需要数据源进行监控,那你需要启用StatFilter


Subversion

http://code.alibabatech.com/svn/druid/trunk/


Download

Binary: http://code.alibabatech.com/mvn/releases/com/alibaba/druid/0.1.2/druid-0.1.2.jar

Source: http://code.alibabatech.com/mvn/releases/com/alibaba/druid/0.1.2/druid-0.1.2-sources.jar


Maven


Alibaba Open Source Repository

<repositories>
<repository>
<id>alibaba-opensource</id>
<name>alibaba-opensource</name>
<url>http:<span class="code-comment" style="color: rgb(128, 128, 128); background-color: inherit;">//code.alibabatech.com/mvn/releases/</url>
</span>		<layout><span class="code-keyword" style="color: rgb(0, 0, 145); background-color: inherit;">default</span></layout>
</repository>
<repository>
<id>alibaba-opensource-snapshot</id>
<name>alibaba-opensource-snapshot</name>
<url>http:<span class="code-comment" style="color: rgb(128, 128, 128); background-color: inherit;">//code.alibabatech.com/mvn/snapshots/</url>
</span>		<layout><span class="code-keyword" style="color: rgb(0, 0, 145); background-color: inherit;">default</span></layout>
</repository>
</repositories>



依赖配置

<dependencies>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>0.1.2</version>
</dependency>
</dependencies>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: