feat(auth): upgrade casbin to v3 and enhance connection pool configurations
- Upgrade casbin from v2 to v3 across go.mod and pkg/auth/casbin.go - Add slide captcha verification to registration flow (CheckVerified, ConsumeVerified) - Add DB wrapper with connection pool statistics and health checks - Add Redis connection pool optimizations with stats and health monitoring - Add new config options: ConnMaxLifetime, HealthCheckInterval, EnableRetryOnError - Optimize slow query threshold from 200ms to 100ms - Add ping with retry mechanism for database and Redis connections
This commit is contained in:
59
.env.example
59
.env.example
@@ -41,19 +41,74 @@ DATABASE_PASSWORD=your_password_here
|
||||
DATABASE_NAME=carrotskin
|
||||
DATABASE_SSL_MODE=disable
|
||||
DATABASE_TIMEZONE=Asia/Shanghai
|
||||
|
||||
# 连接池配置(优化后的默认值)
|
||||
# 最大空闲连接数:在连接池中保持的最大空闲连接数
|
||||
# 建议值:CPU核心数 * 2 ~ CPU核心数 * 4
|
||||
DATABASE_MAX_IDLE_CONNS=10
|
||||
# 最大打开连接数:允许的最大并发连接数
|
||||
# 建议值:根据并发需求调整,高并发场景可设置更高(如200-500)
|
||||
DATABASE_MAX_OPEN_CONNS=100
|
||||
# 连接最大生命周期:连接被重用前的最大存活时间
|
||||
# 建议值:30分钟到1小时,避免长时间占用连接
|
||||
DATABASE_CONN_MAX_LIFETIME=1h
|
||||
# 连接最大空闲时间:连接被关闭前的最大空闲时间
|
||||
# 建议值:5-15分钟,避免长时间空闲占用资源
|
||||
DATABASE_CONN_MAX_IDLE_TIME=10m
|
||||
# 连接获取超时:等待获取连接的超时时间(新增)
|
||||
# 建议值:1-5秒,避免长时间阻塞
|
||||
DATABASE_CONN_TIMEOUT=5s
|
||||
# 查询超时:单次查询的最大执行时间(新增)
|
||||
# 建议值:5-30秒,根据业务查询复杂度调整
|
||||
DATABASE_QUERY_TIMEOUT=30s
|
||||
# 慢查询阈值:记录慢查询的阈值(优化:从200ms调整为100ms)
|
||||
# 超过此时间的查询将被记录为警告
|
||||
DATABASE_SLOW_THRESHOLD=100ms
|
||||
# 健康检查间隔:定期检查数据库连接健康的间隔(新增)
|
||||
# 建议值:30秒到5分钟
|
||||
DATABASE_HEALTH_CHECK_INTERVAL=30s
|
||||
|
||||
# =============================================================================
|
||||
# Redis配置
|
||||
# Redis配置(优化后的默认值)
|
||||
# =============================================================================
|
||||
REDIS_HOST=localhost
|
||||
REDIS_PORT=6379
|
||||
REDIS_PASSWORD=
|
||||
REDIS_DATABASE=0
|
||||
REDIS_POOL_SIZE=10
|
||||
|
||||
# 连接池配置(优化后的默认值)
|
||||
# 连接池大小:允许的最大并发连接数
|
||||
# 建议值:CPU核心数 * 4 ~ CPU核心数 * 8,根据并发需求调整
|
||||
REDIS_POOL_SIZE=16
|
||||
# 最小空闲连接数:在连接池中保持的最小空闲连接数
|
||||
# 建议值:CPU核心数 * 2 ~ CPU核心数 * 4
|
||||
REDIS_MIN_IDLE_CONNS=8
|
||||
# 最大重试次数:操作失败时的最大重试次数
|
||||
REDIS_MAX_RETRIES=3
|
||||
# 连接超时:建立连接的超时时间
|
||||
# 建议值:3-10秒
|
||||
REDIS_DIAL_TIMEOUT=5s
|
||||
# 读取超时:读取数据的超时时间
|
||||
# 建议值:3-5秒
|
||||
REDIS_READ_TIMEOUT=3s
|
||||
# 写入超时:写入数据的超时时间
|
||||
# 建议值:3-5秒
|
||||
REDIS_WRITE_TIMEOUT=3s
|
||||
# 连接池超时:等待获取连接的超时时间
|
||||
# 建议值:3-5秒
|
||||
REDIS_POOL_TIMEOUT=4s
|
||||
# 连接最大空闲时间:连接被关闭前的最大空闲时间
|
||||
# 建议值:5-15分钟,避免长时间空闲占用资源
|
||||
REDIS_CONN_MAX_IDLE_TIME=10m
|
||||
# 连接最大生命周期:连接被重用前的最大存活时间
|
||||
# 建议值:15-30分钟,避免长时间占用导致连接问题
|
||||
REDIS_CONN_MAX_LIFETIME=30m
|
||||
# 健康检查间隔:定期检查Redis连接健康的间隔
|
||||
# 建议值:30秒到5分钟
|
||||
REDIS_HEALTH_CHECK_INTERVAL=30s
|
||||
# 错误时启用重试:操作失败时是否启用自动重试
|
||||
# 建议值:true(生产环境),开发环境可设为false
|
||||
REDIS_ENABLE_RETRY_ON_ERROR=true
|
||||
|
||||
# =============================================================================
|
||||
# RustFS对象存储配置 (S3兼容)
|
||||
|
||||
Reference in New Issue
Block a user