feat: 优化数据库和Redis连接池配置

This commit is contained in:
Jie Zheng 2025-01-13 16:00:44 +08:00
parent 1136bb6172
commit bb9a0d7213
3 changed files with 43 additions and 26 deletions

View File

@ -7,21 +7,21 @@ spring:
url: jdbc:p6spy:mysql://localhost:3306/eladmin?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false url: jdbc:p6spy:mysql://localhost:3306/eladmin?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false
username: root username: root
password: 123456 password: 123456
# 初始连接数 # 初始连接数,建议设置为与最小空闲连接数相同
initial-size: 5 initial-size: 20
# 最小连接数 # 最小空闲连接数,保持足够的空闲连接以应对请求
min-idle: 15 min-idle: 20
# 最大连接数 # 最大连接数,根据并发需求适当增加
max-active: 30 max-active: 50
# 超时时间(以秒数为单位) # 获取连接超时时间(毫秒),调整以满足响应时间要求
remove-abandoned-timeout: 180
# 获取连接超时时间
max-wait: 3000 max-wait: 3000
# 连接有效性检测时间 # 启用KeepAlive机制保持长连接
keep-alive: true
# 连接有效性检测间隔时间(毫秒),定期检查连接的健康状态
time-between-eviction-runs-millis: 60000 time-between-eviction-runs-millis: 60000
# 连接在池中最小生存的时间 # 连接在池中最小生存时间(毫秒),确保连接在池中至少存在一段时间
min-evictable-idle-time-millis: 300000 min-evictable-idle-time-millis: 300000
# 连接在池中最大生存时间 # 连接在池中最大生存时间(毫秒),防止连接在池中停留过长
max-evictable-idle-time-millis: 900000 max-evictable-idle-time-millis: 900000
# 指明连接是否被空闲连接回收器(如果有)进行检验.如果检测失败,则连接将被从池中去除 # 指明连接是否被空闲连接回收器(如果有)进行检验.如果检测失败,则连接将被从池中去除
test-while-idle: true test-while-idle: true
@ -29,8 +29,10 @@ spring:
test-on-borrow: true test-on-borrow: true
# 是否在归还到池中前进行检验 # 是否在归还到池中前进行检验
test-on-return: false test-on-return: false
# 停用 com_ping 探活机制
use-ping-method: false
# 检测连接是否有效 # 检测连接是否有效
validation-query: select 1 validation-query: SELECT 1
# 配置监控统计 # 配置监控统计
webStatFilter: webStatFilter:
enabled: true enabled: true
@ -43,7 +45,7 @@ spring:
enabled: true enabled: true
# 记录慢SQL # 记录慢SQL
log-slow-sql: true log-slow-sql: true
slow-sql-millis: 1000 slow-sql-millis: 2000
merge-sql: true merge-sql: true
wall: wall:
config: config:

View File

@ -7,19 +7,21 @@ spring:
url: jdbc:mysql://${DB_HOST:localhost}:${DB_PORT:3306}/${DB_NAME:eladmin}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false url: jdbc:mysql://${DB_HOST:localhost}:${DB_PORT:3306}/${DB_NAME:eladmin}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false
username: ${DB_USER:root} username: ${DB_USER:root}
password: ${DB_PWD:123456} password: ${DB_PWD:123456}
# 初始连接数 # 初始连接数,建议设置为与最小空闲连接数相同
initial-size: 5 initial-size: 20
# 最小连接数 # 最小空闲连接数,保持足够的空闲连接以应对请求
min-idle: 15 min-idle: 20
# 最大连接数 # 最大连接数,根据并发需求适当增加
max-active: 30 max-active: 50
# 获取连接超时时间 # 获取连接超时时间(毫秒),调整以满足响应时间要求
max-wait: 5000 max-wait: 3000
# 连接有效性检测时间 # 启用KeepAlive机制保持长连接
keep-alive: true
# 连接有效性检测间隔时间(毫秒),定期检查连接的健康状态
time-between-eviction-runs-millis: 60000 time-between-eviction-runs-millis: 60000
# 连接在池中最小生存的时间 # 连接在池中最小生存时间(毫秒),确保连接在池中至少存在一段时间
min-evictable-idle-time-millis: 300000 min-evictable-idle-time-millis: 300000
# 连接在池中最大生存时间 # 连接在池中最大生存时间(毫秒),防止连接在池中停留过长
max-evictable-idle-time-millis: 900000 max-evictable-idle-time-millis: 900000
# 指明连接是否被空闲连接回收器(如果有)进行检验.如果检测失败,则连接将被从池中去除 # 指明连接是否被空闲连接回收器(如果有)进行检验.如果检测失败,则连接将被从池中去除
test-while-idle: true test-while-idle: true
@ -27,8 +29,10 @@ spring:
test-on-borrow: true test-on-borrow: true
# 是否在归还到池中前进行检验 # 是否在归还到池中前进行检验
test-on-return: false test-on-return: false
# 停用 com_ping 探活机制
use-ping-method: false
# 检测连接是否有效 # 检测连接是否有效
validation-query: select 1 validation-query: SELECT 1
# 配置监控统计 # 配置监控统计
webStatFilter: webStatFilter:
enabled: true enabled: true

View File

@ -39,6 +39,17 @@ spring:
password: ${REDIS_PWD:} password: ${REDIS_PWD:}
#连接超时时间 #连接超时时间
timeout: 5000 timeout: 5000
# 连接池配置
lettuce:
pool:
# 连接池最大连接数
max-active: 30
# 连接池最大阻塞等待时间(毫秒),负值表示没有限制
max-wait: -1
# 连接池中的最大空闲连接数
max-idle: 20
# 连接池中的最小空闲连接数
min-idle: 1
task: task:
pool: pool: