数据库本身看起来还能响应,应用却大量超时,日志里不断出现“获取连接超时”。连接池耗尽往往不是根因,而是慢查询、长事务或连接泄漏把有限连接长期占住后的结果。
这一集从一次服务雪崩出发,讲清请求线程、连接池和数据库连接之间如何排队,以及为什么盲目增大连接池可能让故障更加严重。
重点内容:
- 连接池解决了什么问题
- 请求拿不到连接时究竟在等待什么
- 慢查询和长事务如何耗尽连接池
- 连接泄漏为什么会缓慢积累后突然爆发
- 为什么连接数越多不一定吞吐越高
- 超时、限流与故障扩散之间的关系
- 如何从应用和数据库两端定位连接池问题
英文词对照:
- Connection Pool:连接池
- Connection Timeout:获取连接超时
- Maximum Pool Size:连接池最大连接数
- Connection Leak:连接泄漏
- Queueing:排队
- Backpressure:背压
- Fail Fast:快速失败
- Little's Law:利特尔法则

