连接池性能测试技术选型(JDBC,hikari,c3p0,DRUID)

一、测试方式

使用Junit直接调用service层代码,确保测试结果不受web容器影响.每个测试项目连续测试3次,取中间值作为测试结果.

二、与springboot集成

Tomcat JDBC

连接池性能测试技术选型(JDBC,hikari,c3p0,DRUID)

hikari

连接池性能测试技术选型(JDBC,hikari,c3p0,DRUID)

C3P0

Springboot与C3P0之间均没有提供相互支持,需要自行实现配置才能启用,且C3P0最后一个版本发布时间为2015年,可能已经停止维护了.
连接池性能测试技术选型(JDBC,hikari,c3p0,DRUID)
连接池性能测试技术选型(JDBC,hikari,c3p0,DRUID)

DRUID

Druid提供druid-spring-boot-starter对Springboot无缝对接
连接池性能测试技术选型(JDBC,hikari,c3p0,DRUID)

三、测试结果

项目初始化

连接池性能测试技术选型(JDBC,hikari,c3p0,DRUID)

单次查询

连接池性能测试技术选型(JDBC,hikari,c3p0,DRUID)

连续1000次查询

连接池性能测试技术选型(JDBC,hikari,c3p0,DRUID)

连续5000次查询

连接池性能测试技术选型(JDBC,hikari,c3p0,DRUID)

100个线程并发查询10次

连接池性能测试技术选型(JDBC,hikari,c3p0,DRUID)

100个线程并发查询100次

连接池性能测试技术选型(JDBC,hikari,c3p0,DRUID)

1000个线程并发查询10次

连接池性能测试技术选型(JDBC,hikari,c3p0,DRUID)

1000个线程并发查询100次

连接池性能测试技术选型(JDBC,hikari,c3p0,DRUID)

5000个线程并发查询10次

连接池性能测试技术选型(JDBC,hikari,c3p0,DRUID)

10000个线程并发查询10次

连接池性能测试技术选型(JDBC,hikari,c3p0,DRUID)

5个进程分别1000个线程并发查询10次

连接池性能测试技术选型(JDBC,hikari,c3p0,DRUID)

100个线程并发通过feign调用10次(5个服务)(数据波动较大)

连接池性能测试技术选型(JDBC,hikari,c3p0,DRUID)

100个线程并发通过feign调用100次(5个服务) (数据波动较大)

连接池性能测试技术选型(JDBC,hikari,c3p0,DRUID)

1000个线程并发通过feign调用10次(5个服务) (数据波动较大)

连接池性能测试技术选型(JDBC,hikari,c3p0,DRUID)

线程数达到2000时,feign服务报错

四、初步结论

dbcp2在线程数量较高时直接卡死,且性能最差
tomcat jdbc在5个进程分别使用20个连接时,其中四个进程报错
c3p0在线程数量达到5000时性能下降严重
druid在5个进程分别使用25个连接时,其中2~3个进程报错
hikari性能均保持前列,在5个进程分别使用50个连接,无异常,初步建议使用hikari连接池

五、完

分享以上测试数据,希望能为你的技术选型提供到帮助。

相关文章:

  • 2021-05-21
  • 2022-03-07
  • 2021-04-26
  • 2022-12-23
  • 2022-12-23
  • 2021-10-06
  • 2022-03-06
猜你喜欢
  • 2021-07-24
  • 2021-12-11
  • 2022-12-23
  • 2021-11-19
  • 2021-05-10
  • 2021-11-22
相关资源
相似解决方案