标签频道
HikariCP
该标签下的文章、提问与讨论帖。
现象或背景 在 Kubernetes 集群中,我们曾遇到一个典型场景:使用 HikariCP 5.1.0 + MySQL 8.0.35 时,QPS 稳定 600,P50 8ms,但每天稳定出现 20~50 次「拿到连接后卡满 30s 才抛异
现象或背景 在某金融系统核心交易模块的压测中,我们发现一个反直觉现象:当将 HikariCP 的 maximumPoolSize 调整为 CPU 核数的 50 倍时,系统 P99 延迟反而从 12ms 增长到 2.4s。这个案例揭示了连接池
一、现象或背景 一条读多写少的商品详情服务(Java 17 + Spring Boot 3.1 + HikariCP 5.1.0,后端 MySQL 8.0.35,中间隔了一层云 RDS Proxy / SLB),QPS 稳定 600,P50
现象或背景 在电商大促期间,我们遇到一个典型场景:某核心下单接口的数据库连接池出现「空闲连接数骤降 + 超时率飙升」的连锁反应,导致接口 P99 从 80ms 激增至 1200ms。事后分析发现,问题根源在于连接池配置未考虑 突发流量的突发
【背景】 我负责一个 Java 17 / Spring Boot 3 的交易服务,单实例 4C8G,HikariCP 连接池(maximumPoolSize=20,connectionTimeout=3000ms),下游是 MySQL 8.
【背景】 我们一个订单查询服务切到了 JDK 21 虚拟线程(JDK 21.0.3 / Spring Boot 3.2.5 / Tomcat 10.1),Tomcat 沿用平台模板 maxThreads=200、async.max-thre
问
连接池 maxLifetime 设了 30min 仍偶发 Connection reset by peer:如何区分是 DB wait_timeout 还是中间 NAT/LB 空闲回收,配置该谁兜底
【背景】 链路是「清算编排 → 账务落库」,使用 HikariCP 5.1,K8s 部署,4 副本,QPS 峰值约 1.2k。连接走公司 VPC,中间有一层 NAT 网关(空闲连接默认回收,文档标称 60s 但没写死)+ RDS 侧 "wa
问
连接池 maxLifetime 设了 30min 仍偶发 Connection reset by peer:如何区分是 DB wait_timeout 还是中间 NAT/LB 空闲回收,配置该谁兜底
【背景】 我负责一个交易清算服务:Spring Boot 3.2 + JDK 17 + MySQL 8.0(RDS 主从)+ HikariCP 5.1,K8s 部署,4 副本,QPS 峰值约 1.2k。链路是「清算编排 → 账务落库」。连接
背景 订单服务,Spring Boot 3.2 + JDK 17 + HikariCP 5.1.0 + MySQL 8.0,K8s 1.28 滚动发布(maxUnavailable=1、terminationGracePeriodSecon
【背景】 在 Kubernetes 环境中进行滚动发布时,我们常常需要优雅地关闭正在运行的 Pod,以确保服务的平稳过渡。HikariCP 是一个常用的连接池实现,它在关闭时会尝试关闭所有未完成的 SQL 查询。然而,对于那些执行时间较长的
背景 订单服务,Spring Boot 3.2 + JDK 17 + HikariCP 5.1.0 + MySQL 8.0,K8s 1.28 滚动发布(maxUnavailable=1、terminationGracePeriodSecon
背景 订单服务,Spring Boot 3.2 + JDK 17 + HikariCP 5.1.0 + MySQL 8.0,K8s 1.28 滚动发布(maxUnavailable=1、terminationGracePeriodSecon
先给结论 1. 你的「静默死亡窗口」有一个可计算的精确上界:对活跃连接 = "max(app_timeout, keepalive_time + keepalive_intvl × keepalive_probes)";对空闲池连接 = "
HikariCP connectionTimeout 30s 问题:网关排队 + 连接池假满的双重坑与解法清单 一、现象与背景 你遇到一个令人抓狂的性能问题: - 请求处理时间 80ms,但 2.4s 的总耗时中, - 2s 是网关 wor
现象或背景 在电商大促期间,我们遇到一个典型场景:某核心下单接口的数据库连接池出现「空闲连接数骤降 + 超时率飙升」的连锁反应,导致接口 P99 从 80ms 激增至 1200ms。事后分析发现,问题根源在于连接池配置未考虑 突发流量的突发
【背景】 在高并发系统中,连接池的大小一直是一个常见的调优话题。很多团队会参考「连接池大小 = CPU 核数 × 10」这样的经验值。然而,实际场景中,这个经验是否适用?是否会导致性能抖动、资源浪费甚至影响系统稳定性? 【常见分歧】 1.
现象:MySQL 8.0,K8s 部署 4 副本,单副本 4C8G,入口稳态 800 QPS、峰值 1500。每次连接池打满都是「用户先投诉、我们再复盘」,事后看 GC、慢日志、max 配置,结论往往是「配置没问题,是下游抖动」。 已尝试:
现象或背景 在高并发的 deadline 共享场景下,我们常常会遇到数据库连接池的性能瓶颈。例如,一个订单查询服务在凌晨时段出现严重的性能退化,187 个请求各卡了 30 秒,P99 从 12ms 飙到 30 018ms,翻了 2500 倍
背景 在一次高并发的 Java 服务优化中,我们遇到了一个典型的误区:线程池从 200 调到 2000,P99 从 950ms 反而翻了 5 倍。CPU 使用率反而从 35% 降到了 22%,而连接池超时率却飙升。 现象 - CPU 使用率
背景 K8s 1.28.9 + cgroup v2 + 内核 5.15,14 节点 16C64G 集群,Java 17 / Spring Boot 3 订单服务,HikariCP 4.0.3,连接池配置 "maximumPoolSize=2
已经到底了
文
标题
摘要