1、Druid源码下载
拉取代码
git clone https://github.com/alibaba/druid.git
源码编译
mvn clean install '-Dmaven.test.skip=true'
2、SpringBoot集成Druid连接池
springBoot框架默认自动装配的是HikariCP,spring-jdbc如果不指定连接池的话会使用HikariCP。
POM文件添加Druid starter
com.alibaba
druid-spring-boot-starter
1.2.8
配置参数
spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://127.0.0.1:3306/test?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=UTF-8&useSSL=false username: root password: 123456 type: com.alibaba.druid.pool.DruidDataSource druid: initial-size: 5 min-idle: 5 max-active: 20 max-wait: 60000 time-between-eviction-runs-millis: 60000 min-evictable-idle-time-millis: 300000 validation-query: SELECT 1 FROM DUAL test-while-idle: true test-on-borrow: false test-on-return: false # 打开PSCache pool-prepared-statements: true # 配置监控统计拦截的filters,stat:监控统计、log4j:日志记录、wall:防御sql注入 filters: stat,wall,log4j,config # 指定每个连接上PSCache的大小 max-pool-prepared-statement-per-connection-size: 20 # 合并多个DruidDataSource的监控数据 use-global-data-source-stat: true # 通过connectProperties属性来打开mergeSql功能;慢SQL记录 connection-properties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
指定DataSrouce
Config
@ConfigurationProperties(prefix = "spring.datasource")
@Bean
public DataSource druid() {
return new DruidDataSource();
}
测试运行
3、DruidCP与HikariCP对比
测试版本:DruidCP 1.2.8,HikariCP 4.0.3,springboot 2.1.4.RELEASE,mysql 5.7.36
测试工具:SuperBenchmarker
测试命令:sb -u http://127.0.0.1/test -c 5 -N 20
JVM配置:-Xms1g -Xmx1g
采用的都是默认配置
获取链接和关闭连接性能对比 DruidCP RPS:2953.7,HikariCP RPS:3190.6
由此可见DruidCP与HikariCP的性能方面是差不多的,都是非常优秀的连接池工具。
Alibaba Druid连接池除了卓越的性能外,还提供了非常丰富的监控和扩展功能。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)