Druid数据库连接池简介及应用推广(老项目翻出来做下记录)

简介: Druid数据库连接池简介及应用推广(老项目翻出来做下记录)
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配置。            

方法名正则匹配拦截配置


相关文章
|
25天前
|
SQL druid Java
线程池相关故障问题之Druid数据库连接池中,为何需要设置TransactionTimeout
线程池相关故障问题之Druid数据库连接池中,为何需要设置TransactionTimeout
|
11天前
|
Oracle 关系型数据库 MySQL
OceanBase数据库简介
【8月更文挑战第9天】OceanBase数据库简介
128 60
|
2月前
|
druid 数据库
杨校老师课堂之基于阿里巴巴的数据库连接池Druid的工具类开发
杨校老师课堂之基于阿里巴巴的数据库连接池Druid的工具类开发
25 0
|
5天前
|
SQL Java 数据库连接
java连接数据库加载驱动到java项目
该博客文章介绍了如何在Java项目中通过代码加载数据库驱动并连接SQL Server数据库,包括具体的加载驱动和建立数据库连接的步骤,以及如何将驱动包添加到Java项目的构建路径中。
|
3天前
|
前端开发 数据库
SpringBoot+Vue+token实现(表单+图片)上传、图片地址保存到数据库。上传图片保存位置到项目中的静态资源下、图片可以在前端回显(二))
这篇文章是关于如何在SpringBoot+Vue+token的环境下实现表单和图片上传的优化篇,主要改进是将图片保存位置从磁盘指定位置改为项目中的静态资源目录,使得图片资源可以跨环境访问,并在前端正确回显。
|
19天前
|
开发框架 前端开发 JavaScript
基于SqlSugar的数据库访问处理的封装,支持.net FrameWork和.net core的项目调用
基于SqlSugar的数据库访问处理的封装,支持.net FrameWork和.net core的项目调用
|
4天前
|
druid Java 数据库连接
SpringBoot项目整合MybatisPlus持久层框架+Druid数据库连接池,以及实现增删改查功能
SpringBoot项目整合MybatisPlus和Druid数据库连接池,实现基本的增删改查功能。
17 0
|
1月前
|
ARouter 关系型数据库 MySQL
Django项目同时连接多个不同的数据库(7)
【7月更文挑战第7天】在Django项目中配置连接多个数据库,你需要: 1. 在`settings.py`中配置多个数据库, 2. 在`settings.py`内设置数据库路由,指定每个应用使用的数据库,
70 2
|
1月前
|
SQL XML Java
解决Spring Boot项目中的数据库迁移问题
解决Spring Boot项目中的数据库迁移问题
|
1月前
|
SQL XML Java
解决Spring Boot项目中的数据库迁移问题
解决Spring Boot项目中的数据库迁移问题