c3p0,dbcp2,druid,hikari数据源对比
c3p0,dbcp2,druid,hikari数据源对比
说明
本次测试c3p0采用版本为0.9.5.2,dbcp2采用版本为2.1.1,druid数据源采用版本为:1.1.10,hikari数据源为2.7.9,数据库均采用oracle数据库。
单线程循环多次调用测试(数据库10000条数据)
测试前置条件
1.数据源配置初始化数据库连接为5,最大数据库连接数为20。
2.采用单线程请求调用,在控制层对服务层进行循环调用,统计样本数10个。
3.数据库数据量为10000条。
测试结果
二、多线程并发单次调用测试(10000条数据)
测试前置条件
1.数据源配置为初始化数据库连接为5,最大数据库连接数为20。
2.采用多线程并发(秒级并发量),共测试10次,记录:平均值,中位数,95%请求耗时,最大耗时和请求超时/错误率。
3.结果采用jmeter通过http请求相应时间来进行记录。
4.数据库数据量为10000条。
测试结果
结论
从结果上来看,c3p0对于多线程的数据调用支持较差,延时较高,dbcp2和druid对多线程并发调用支持较好;在5000的并发量时,druid的请求超时率较低,性能较好;在10000的并发量时,请求超时和错误率都较高,初步判断是电脑性能导致;
三、多线程并发调用多个微服务
测试前置条件
1.数据源配置为初始化数据库连接为5,最大数据库连接数为20。
2.服务为起5个springboot微服务,连接同一个数据库实例。
3.采用多线程并发,同时对5个服务进行调用,共测试10次,记录:平均值,中位数,95%请求耗时,最大耗时和请求超时/错误率。
4.结果采用jmeter通过http请求相应时间来进行记录。
5.数据库数据量为10条。
测试结果
四、多线程并发调用多个微服务(10000条)
测试前置条件
1.数据源配置为初始化数据库连接为5,最大数据库连接数为20。
2.服务为起5个springboot微服务,连接同一个数据库实例。
3.采用多线程并发,同时对5个服务进行调用,共测试10次,记录:平均值,中位数,95%请求耗时,最大耗时和请求超时/错误率。
4.结果采用jmeter通过http请求相应时间来进行记录。
5.数据库数据量为10000条。
测试结果
五、多线程并发通过feign调用微服务
测试前置条件
1.数据源配置为初始化数据库连接为5,最大数据库连接数为20。
2.服务为一个eureka注册中心,4个eureka服务实例,一个feign客户端
3.采用多线程并发,对feign客户端进行调用
4.记录请求耗时,最大耗时和请求超时/错误率。
5.结果采用jmeter通过http请求相应时间来进行记录。
6.数据库数据为10000条。
7.在10*500时错误率很高,应该是电脑性能所致,故3个数据源未进行测试。
测试结果
完
分享以上测试结果,希望能帮大家做出选择。