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也要强一些。

  1. 先看一下我的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>
  1. 配置中心的配置

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
  1. 关于DataSourceJdbcTemplate的配置文件

@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);
    }
}
  1. 最后一步,愉快的使用,就是这么的简单

@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对比使用整理自测的主要内容,如果未能解决你的问题,请参考以下文章

在SpringBoot中使用HikariCP连接池

SpringBoot:spring boot使用Druid和监控配置

springboot集成druid数据源并且监控

数据源从druid迁移到HikariCP

HikariCP Druid比较

Hive的连接池-HikariCP