Druid--高性能数据库组件
来源:互联网 发布:怎么网络报警电话 编辑:程序博客网 时间:2024/05/21 09:17
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提供了一些内置的扩展机制,包括Stat、Log、Trace、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://code.alibabatech.com/mvn/releases/</url><layout>default</layout></repository><repository><id>alibaba-opensource-snapshot</id><name>alibaba-opensource-snapshot</name><url>http://code.alibabatech.com/mvn/snapshots/</url><layout>default</layout></repository></repositories>
依赖配置
<dependencies><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>0.1.2</version></dependency></dependencies>
- Druid--高性能数据库组件
- Druid--高性能数据库组件
- 高性能数据源"com.alibaba.druid.pool.DruidDataSource"
- 分布式之高性能组件
- 高性能数据库实践经验
- 数据库高性能写入
- Druid是一个JDBC组件 数据库语句监控
- 项目性能监控javamelody和数据库监控druid
- 数据库连性池性能测试(hikariCP,druid,tomcat-jdbc,dbcp,c3p0)
- 数据库连性池性能测试(hikariCP,druid,tomcat-jdbc,dbcp,c3p0)
- Druid 监控JavaWeb项目的数据库访问性能
- Druid组件角色
- Unity5中的高性能物理组件
- Unity5中的高性能物理组件
- [特斯拉组件]ios高性能PageController
- 【特斯拉组件】iOS高性能PageController
- [特斯拉组件]iOS 高性能 PageController
- [特斯拉组件]iOS 高性能 PageController
- cocos2d-x使用第三方的TTF字体库
- Android Notification的使用方法
- twitter online 数组中找集合的问题
- JS监听关闭浏览器事件
- Android中EditTex焦点设置和弹不弹出输入法的问题
- Druid--高性能数据库组件
- 使用Spring+Hibernate+JOTM+Oracle9i集成解决方案的遭遇
- 使用RestSharp 库消费Restful Service
- git使用笔记
- 使用js操作cookie的一点小收获
- 机器学习前沿热点–Deep Learning
- 吸收直接投资学习笔记
- 【让WinXP系统启动速度达到最快】
- 如何正确的学习一门计算机语言