【Easylive】HikariCP 介绍

【Easylive】项目常见问题解答(自用&持续更新中…) 汇总版
HikariCP 是目前 Java 生态中最快、最轻量级的高性能 JDBC 连接池,被 Spring Boot 2.x 及更高版本选为 默认数据库连接池。它的名字来源于日语“光”(Hikari),意为“快速、高效”。


1. 为什么选择 HikariCP?

特性说明
极高性能比传统的 C3P0、Tomcat JDBC、DBCP 快很多
轻量级代码精简(约 130KB),无额外依赖
零开销优化了字节码,减少 JVM 垃圾回收压力
自动优化智能调整连接池大小,避免资源浪费
健康检查自动检测失效连接,避免应用因数据库问题崩溃
Spring Boot 默认无需额外配置,开箱即用

2. HikariCP 核心配置参数

在你的 application.yml 中,HikariCP 的配置如下:

spring:datasource:hikari:pool-name: HikariCPDatasource   # 连接池名称(用于监控)minimum-idle: 5                 # 最小空闲连接数(默认等于 maximum-pool-size)maximum-pool-size: 10           # 最大连接数(推荐值:CPU核心数 * 2 + 1)idle-timeout: 180000            # 空闲连接超时时间(毫秒,默认 60000)max-lifetime: 1800000           # 连接最大存活时间(毫秒,默认 1800000)auto-commit: true               # 是否自动提交事务(默认 true)connection-timeout: 30000       # 连接超时时间(毫秒,默认 30000)connection-test-query: SELECT 1 # 连接测试 SQL(用于检查连接是否有效)

关键参数说明

参数推荐值作用
maximum-pool-sizeCPU核心数 * 2 + 1避免连接数过多导致数据库性能下降
minimum-idle≤ maximum-pool-size保持的最小空闲连接数(默认等于 maximum-pool-size
idle-timeout60000(1分钟)空闲连接超过此时间会被回收
max-lifetime1800000(30分钟)连接最大存活时间,避免长时间占用
connection-timeout30000(30秒)获取连接的超时时间,超时抛异常
connection-test-querySELECT 1检查连接是否有效的 SQL(MySQL 可用 SELECT 1

3. HikariCP 的优势

(1) 性能极致优化

无锁并发:采用 ConcurrentBag 数据结构,减少锁竞争。
字节码优化:减少 JVM 方法调用开销。
智能缓存:复用 PreparedStatement,减少 SQL 解析时间。

(2) 自动维护连接健康

心跳检测:定期检查连接是否有效,避免使用已断开的连接。
快速失败:如果数据库宕机,HikariCP 会立即抛出异常,而不是无限等待。

(3) 与 Spring Boot 完美集成

Spring Boot 2.x 默认使用 HikariCP,只需配置 spring.datasource.hikari.* 即可。


4. 常见问题

Q1: HikariCP 和 Druid 哪个更好?

对比项HikariCPDruid
性能⚡ 更快稍慢
功能基础连接池带监控、SQL 防火墙等
适用场景高性能需求需要监控和扩展功能

推荐选择
• 如果只需要 高性能连接池HikariCP(默认推荐)。
• 如果需要 监控、SQL 防注入Druid

Q2: 如何监控 HikariCP?

可以通过 Spring Boot ActuatorJMX 监控连接池状态:

management:endpoints:web:exposure:include: health,metrics,hikaricp

访问 http://localhost:7070/actuator/hikaricp 查看连接池状态。


5. 总结

HikariCP 是 Spring Boot 默认的高性能连接池,适合绝大多数场景。
关键配置maximum-pool-sizeminimum-idleconnection-timeout
优势:速度快、轻量级、自动维护连接健康。
监控:可通过 Actuator 或 JMX 查看状态。

如果你的应用不需要 Druid 的额外功能,HikariCP 是最佳选择! 🚀

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/76287.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

清晰易懂的Cursor实现AI编程从安装到实战TodoList开发

一、Cursor简介与安装部署 什么是Cursor? Cursor是一款基于AI的智能代码编辑器,它集成了强大的AI编程助手功能,能够通过自然语言交互帮助开发者生成、优化和调试代码。与传统的代码编辑器不同,Cursor可以理解你的编程意图&#…

【Django】教程-2-前端-目录结构介绍

【Django】教程-1-安装创建项目目录结构介绍 3. 前端文件配置 3.1 目录介绍 在app下创建static文件夹, 是根据setting中的配置来的 STATIC_URL ‘static/’ templates目录,编写HTML模板(含有模板语法,继承,{% static ‘xx’ …

注意!ChatGPT 全新 AI 图像功能延迟对免费用户开放

2025 年 3 月 25 日,OpenAI 正式宣布在 ChatGPT 中推出基于 GPT-4o 模型的全新原生图像生成功能。 这一功能允许用户通过对话生成和编辑图像,支持从写实风格到插图风格的多种形式。OpenAI 首席执行官萨姆・奥特曼(Sam Altman)在社…

优化webpack打包体积思路

Webpack 打包过大的问题通常会导致页面加载变慢,影响用户体验。可以从代码优化、依赖优化、构建优化等多个角度入手来减少打包体积: 代码优化 (1)按需加载(代码拆分) ① 路由懒加载 如果你的项目使用 Vu…

HarmonyOS Next~鸿蒙元服务开发指南:核心功能与实践

HarmonyOS Next~鸿蒙元服务开发指南:核心功能与实践 一、元服务核心概念 原子化服务定义 元服务(原子服务)是鸿蒙系统的核心架构单元,具备独立业务能力的轻量化服务模块,支持免安装、跨设备调用和智能分发…

git错误:fatal: detected dubious ownership in repository at xxxxxx

1、报错说明 这个错误通常是由于Git仓库目录的拥有者或权限问题引起的。Git检测到仓库目录的所有权可能存在不一致或不安全的情况。 通常导致此报错的可能原因: (1)文件或目录的拥有者不一致: 仓库目录中的某些文件或子目录可能…

【计算机网络】OSI七层模型完全指南:从比特流到应用交互的逐层拆解

OSI模型 导读一、概念二、模型层次结构2.1 物理层(Physical Layer)2.2 数据链路层(Data Link Layer)​2.3 ​网络层(Network Layer)​2.4 ​传输层(Transport Layer)​2.5 ​会话层&…

零基础被迫参加CTF比赛?CTF高频解题技巧与经验分享

CTF(Capture The Flag)比赛中的高频解题技巧通常涵盖了以下几类技术,涉及从逆向工程、二进制漏洞利用到Web安全、密码学等多个领域。以下是一些高频解题技巧: 1. 逆向工程(Reverse Engineering) 静态分析&a…

markdown 文件转 word

将 Markdown 文件转换为 Word 文档,可以使用多种方法。以下是几种常见的方法: 方法1:使用在线转换工具 有许多在线服务可以将 Markdown 文件转换为 Word 文档。例如: Pandoc - 一个非常流行的命令行工具,也可以用来转…

【第十三届“泰迪杯”数据挖掘挑战赛】【2025泰迪杯】【思路篇】A题解题全流程(持续更新)

【第十三届“泰迪杯”数据挖掘挑战赛】【2025泰迪杯】A题解题全流程-思路(持续更新) 写在前面: 1、A题、C题将会持续更新,陆续更新发布文章 2、赛题交流咨询Q群:1037590285 3、全家桶依旧包含: 代码、…

T11 TensorFlow入门实战——优化器对比实验

🍨 本文為🔗365天深度學習訓練營 中的學習紀錄博客🍖 原作者:K同学啊 | 接輔導、項目定制 一、前期准备 1. 导入数据 # Import the required libraries import pathlib import matplotlib.pyplot as plt import tensorflow as t…

Docker部署sprintboot后端项目

创建Docker网络 docker network create icjs 部署Redis docker run -d \--network icjs \--name redis \-p 6379:6379 \redis:latest数据持久化 docker run --restartalways --network icjs -p 6379:6379 --name redis -v /opt/docker/redis/redis.conf:/etc/redis/redis.c…

01小游戏

问题描述 小明得到了一个长度为 nn 的字符串 ss ,该字符串都是由数字 00 和 11 组成,并且下标从 11 开始,小明现在需要对这个字符串进行 qq 次操作,每次操作包含以下两种操作之一: 操作 11 :小明查询该字符…

Androidstudio开发,实现商品分类

文章目录 1. 功能需求2. 代码实现过程1. 编写布局文件2. 创建商品分类(Adapter)适配器3. 实现商品分类Activity4. 在res/values/ 下新建 array.xml ,用于添加商品分类数据5. 效果演示 6. 关于作者其它项目视频教程介绍 1. 功能需求 显示商品分…

Linux快速安装docker和docker-componse步骤

在 CentOS 7 上安装 Docker 和 Docker Compose 的步骤如下: 1. 安装 Docker 1.1. 更新系统 首先,确保你的系统是最新版本: sudo yum update -y1.2. 安装必要的包 安装 yum-utils,这是管理 YUM 源的工具: sudo yu…

VBA代码解决方案第二十三讲 EXCEL中,如何删除工作表中的空白行

《VBA代码解决方案》(版权10028096)这套教程是我最早推出的教程,目前已经是第三版修订了。这套教程定位于入门后的提高,在学习这套教程过程中,侧重点是要理解及掌握我的“积木编程”思想。要灵活运用教程中的实例像搭积木一样把自己喜欢的代码…

Pytorch--tensor.view()

在 PyTorch 中,tensor.view() 是一个常用的方法,用于改变张量(Tensor)的形状(shape),但不会改变其数据本身。它类似于 NumPy 的 reshape(),但有一些关键区别。 1. 基本用法 import …

【机器学习】——机器学习思考总结

摘要 这篇文章深入探讨了机器学习中的数据相关问题,重点分析了神经网络(DNN)的学习机制,包括层级特征提取、非线性激活函数、反向传播和梯度下降等关键机制。同时,文章还讨论了数据集大小的标准、机器学习训练数据量的…

CoAP Shell 笔记

CoAP Shell 笔记 1. 概述 CoAP (Constrained Application Protocol) 是一种专为物联网 (IoT) 中资源受限的节点和网络设计的 RESTful Web 传输协议。CoAP Shell 是一个基于命令行的交互式工具,用于与支持 CoAP 的服务器进行交互。 2. 主要功能 协议支持&#xff…

【最新】探索CFD的未来:从OpenFOAM到深度学习,全面解析计算流体力学的顶级资源与前沿技术

计算流体力学(CFD)作为现代工程与科学研究的核心工具,正以前所未有的速度迈向智能化与多物理场耦合的新时代。本文全面梳理了在线学习CFD的顶级资源,涵盖了从传统数值模拟到深度学习驱动的物理信息模型的广泛领域,旨在为研究者、工程师和学生提供一站式参考指南。内容分为…