HiKariCP和Druid对比使用整理自测
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HiKariCP和Druid对比使用整理自测相关的知识,希望对你有一定的参考价值。
参考技术A其他针对BoneCP缺陷的优化。
HiKari在springboot2.0上默认使用无需配置
接下来我们使用 Jmeter 多线程测试不同连接池带来的效率,更直观的查看连接池的效率问题。
测试新增接口对比
Druid连接池性能测试
Hikari连接池性能测试
测试查询接口对比
Druid连接池性能测试
Hikari连接池性能测试
关于稳定性的图:
对于性能测试对比也给出了柱状图:
针对现在更多的连接池,我们也应该结合项目情况,选择相应合适的连接池
Hive的连接池-HikariCP
hive 连接池 HikariCP
前言:之前分享过一篇使用druid管理Hive的连接池,因为我们的大部分的项目是用的都是druid,所以到Hive这块,第一个想到的也是druid,不过作为一个喜欢不断折腾的小青年,最近又尝试了HikariCP,使用起来比druid要简单多了,而且性能上比druid也要强一些。
先看一下我的pom文件,因为我们的spring-cloud使用的是Edgware.SR3这个版本,spring默认使用的连接池还不是Hikari,所以这里要单独引入HikariCP,spring-boot 2.0就已经使用HikariCP作为默认的连接池,所以使用2.0版本额小伙伴就不用这么麻烦了
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
<exclusions>
<exclusion>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-jdbc</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
<version>2.7.4</version>
</dependency>
配置中心的配置
spring:
hive:
minimum-idle: 0
maximum-pool-size: 2
max-lifetime: 600000
connection-timeout: 60000
username: root
password: 123456
jdbc-url: jdbc:hive2://hadoop03:10001/default;transportMode=http;httpPath=cliservice
driver-class-name: org.apache.hive.jdbc.HiveDriver
testOnBorrow: false
关于
DataSource
与JdbcTemplate
的配置文件
@Configuration
public class JdbcConfiguration {
@Bean(name = "hiveJdbcDataSource")
@Primary
@ConfigurationProperties(prefix = "spring.hive")
public DataSource hiveDataSource(){
return DataSourceBuilder.create().build();
}
@Bean(name = "hiveJdbcTemplate")
public JdbcTemplate hiveJdbcTemplate(@Qualifier("hiveJdbcDataSource") DataSource dataSource){
return new JdbcTemplate(dataSource);
}
}
最后一步,愉快的使用,就是这么的简单
@Component
public class CommonHiveDao {
private final Logger logger = LoggerFactory.getLogger(this.getClass());
@Autowired
@Qualifier("hiveJdbcTemplate")
JdbcTemplate hiveJdbcTemplate;
public HiveResponse execute(HiveBean bean){
hiveJdbcTemplate.execute(bean.getHql());
HiveResponse hiveResponse = HiveResponse.successResult();
return hiveResponse;
}
public HiveResponse executeQuery(HiveBean bean){
List<Map<String, Object>> result = hiveJdbcTemplate.queryForList(bean.getHql());
return HiveResponse.successResult().setListResult(result);
}
}
以上是关于HiKariCP和Druid对比使用整理自测的主要内容,如果未能解决你的问题,请参考以下文章