Druid简介
Apache Druid是一个实时分析型数据库,旨在对大型数据集进行快速的查询分析("OLAP"查询)。Druid最常被当做数据库来用以支持实时摄取、高性能查询和高稳定运行的应用场景,同时,Druid也通常被用来助力分析型应用的图形化界面,或者当做需要快速聚合的高并发后端API,Druid最适合应用于面向事件类型的数据。Druid为阿里巴巴开源数据库连接池,在阿里企业内部被广泛使用,并经受住了高并发等苛刻生产环境考验。
Druid与各数据源性能比对
1、性能方面 hikariCP>druid>tomcat-jdbc>dbcp>c3p0 。hikariCP的高性能得益于最大限度的避免锁竞争。
2、druid功能最为全面,sql拦截等功能,统计数据较为全面,具有良好的扩展性。
3、综合性能,扩展性等方面,可考虑使用druid或者hikariCP连接池,比较方便对jdbc接口进行监控跟踪等。
结论(数据和结论来自阿里druid团队) Druid是性能最好的数据库连接池,tomcat-jdbc和druid性能接近。 proxool在激烈并发时会抛异常,完全不靠谱。 c3p0和proxool都相当慢,慢到影响sql执行效率的地步。 bonecp性能并不优越,采用LinkedTransferQueue并没有能够获得性能提升。 除了bonecp,其他的在JDK 7上跑得比JDK 6上快 jboss-datasource虽然稳定,但是性能很糟
Druid Monitor监控平台
数据源基本信息
SQL监控
SQL防火墙
Web应用
URI监控
Session监控
Spring监控
DruidDataSource配置
DruidDataSource大部分属性都是参考DBCP的,如果你原来就是使用DBCP,迁移是十分方便的(除maxActive外,其他参数值可以以公司统一标准)。
配置StatFilter
别名配置
通过proxyFilters配置
配置StatViewServlet
Druid内置提供了一个StatViewServlet用于展示Druid的统计信息
这个StatViewServlet的用途包括:
提供监控信息展示的html页面
提供监控信息的JSON API
web.xml配置
配置WebStatFilter
web.xml配置
配置LogFilter(一)
Druid提供内置三种LogFilter(Log4jFilter、CommonsLogFilter、Slf4jLogFilter),用于输出JDBC日志。
Log4j配置,DataSource加入如下配置(参数值以公司统一标准):
Log4j.properties
配置LogFilter(二)
Log4j.xml
Druid与Spring关联监控
com.alibaba.druid.support.spring.stat.DruidStatInterceptor是一个标准的Spring MethodInterceptor。可以灵活进行AOP配置。
方法名正则匹配拦截配置