fix(db): add MaxConnLifetimeJitter to prevent synchronized conn expiration storms

This commit is contained in:
2026-04-28 14:45:02 +08:00
parent 903d872e3f
commit 222335e604
+3 -1
View File
@@ -12,7 +12,8 @@ import (
const (
defaultMaxConns = 20
defaultMinConns = 2
defaultMaxConnLifetime = time.Hour
defaultMaxConnLifetime = time.Hour // 单连接最大寿命,到点后回收重建
defaultMaxConnLifetimeJitter = defaultMaxConnLifetime / 10 // 在寿命基础上叠加 0~6 分钟随机抖动,防同步重建 storm
defaultPingTimeout = 5 * time.Second
defaultHealthTimeout = time.Second
)
@@ -31,6 +32,7 @@ func NewPool(ctx context.Context, dsn string) (*Pool, error) {
cfg.MaxConns = defaultMaxConns
cfg.MinConns = defaultMinConns
cfg.MaxConnLifetime = defaultMaxConnLifetime
cfg.MaxConnLifetimeJitter = defaultMaxConnLifetimeJitter
pool, err := pgxpool.NewWithConfig(ctx, cfg)
if err != nil {