优化数据库连接配置
This commit is contained in:
2
pom.xml
2
pom.xml
@@ -10,7 +10,7 @@
|
|||||||
</parent>
|
</parent>
|
||||||
<groupId>com.cst</groupId>
|
<groupId>com.cst</groupId>
|
||||||
<artifactId>AIDriverEEBackend</artifactId>
|
<artifactId>AIDriverEEBackend</artifactId>
|
||||||
<version>1.260131.1-SNAPSHOT</version>
|
<version>1.26032801.1-SNAPSHOT</version>
|
||||||
<name>Langchain4j-rj</name>
|
<name>Langchain4j-rj</name>
|
||||||
<description>Langchain4j-rj20250803</description>
|
<description>Langchain4j-rj20250803</description>
|
||||||
<url/>
|
<url/>
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ import org.springframework.scheduling.annotation.EnableScheduling;
|
|||||||
* <li>本地接口文档: http://localhost:8090/doc.html#/home</li>
|
* <li>本地接口文档: http://localhost:8090/doc.html#/home</li>
|
||||||
* <li>公共接口(硅谷): https://apig.huayang-star.com/doc.html#/home (43.153.123.65)</li>
|
* <li>公共接口(硅谷): https://apig.huayang-star.com/doc.html#/home (43.153.123.65)</li>
|
||||||
* <li>公共接口(上海): https://api.huayang-star.com/doc.html#/home (101.35.52.237)</li>
|
* <li>公共接口(上海): https://api.huayang-star.com/doc.html#/home (101.35.52.237)</li>
|
||||||
|
* <li> AI 服务器http://101.35.52.237:28091/doc.html#/home </li>
|
||||||
* <li>SwaggerUI: http://localhost:9060/swagger-ui/index.html?urls.primaryName=public-api</li>
|
* <li>SwaggerUI: http://localhost:9060/swagger-ui/index.html?urls.primaryName=public-api</li>
|
||||||
* <li>正式后台: http://101.43.230.106:8180/aismartcard/aicardbackend</li>
|
* <li>正式后台: http://101.43.230.106:8180/aismartcard/aicardbackend</li>
|
||||||
* </ul>
|
* </ul>
|
||||||
|
|||||||
@@ -81,9 +81,9 @@ spring:
|
|||||||
database: 0
|
database: 0
|
||||||
datasource:
|
datasource:
|
||||||
driver-class-name: com.mysql.cj.jdbc.Driver
|
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||||
# 优化JDBC URL,添加连接参数以更好地处理连接超时和重连
|
# tcpKeepAlive:TCP 层定期发保活包,降低 NAT/防火墙 idle 断连(常见约 15 分钟)概率
|
||||||
url: jdbc:mysql://124.221.59.58:3309/ai_smart_ee?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai&useSSL=false&socketTimeout=60000&connectTimeout=30000&autoReconnect=true&failOverReadOnly=false&maxReconnects=3&initialTimeout=2
|
url: jdbc:mysql://124.221.59.58:3309/ai_smart_ee?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai&useSSL=false&tcpKeepAlive=true&socketTimeout=60000&connectTimeout=30000&autoReconnect=true&failOverReadOnly=false&maxReconnects=3&initialTimeout=2
|
||||||
# url: jdbc:mysql://101.35.52.237:13307/ai_smart_badge?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&autoReconnect=true&failOverReadOnly=false&maxReconnects=3&initialTimeout=2&connectTimeout=30000&socketTimeout=60000
|
# url: jdbc:mysql://101.35.52.237:13307/ai_smart_badge?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&tcpKeepAlive=true&autoReconnect=true&failOverReadOnly=false&maxReconnects=3&initialTimeout=2&connectTimeout=30000&socketTimeout=60000
|
||||||
username: root
|
username: root
|
||||||
# password: cstcom.123!
|
# password: cstcom.123!
|
||||||
password: ChangAndb.123!
|
password: ChangAndb.123!
|
||||||
@@ -94,18 +94,15 @@ spring:
|
|||||||
# 连接超时配置(毫秒)
|
# 连接超时配置(毫秒)
|
||||||
connectionTimeout: 30000 # 获取连接的超时时间,30秒
|
connectionTimeout: 30000 # 获取连接的超时时间,30秒
|
||||||
validationTimeout: 5000 # 连接验证的超时时间,5秒
|
validationTimeout: 5000 # 连接验证的超时时间,5秒
|
||||||
# 连接生命周期配置(毫秒)
|
# 连接生命周期(毫秒):须同时满足 (1) < MySQL wait_timeout (2) 常小于云 NAT/防火墙 idle 断连(约 15 分钟)
|
||||||
idleTimeout: 300000 # 空闲连接超时时间,5分钟
|
idleTimeout: 180000 # 3 分钟,池中空闲连接提前回收,避免持有可能已被中间设备掐断的 socket
|
||||||
# maxLifetime设置为MySQL wait_timeout的75%(28800秒 * 0.75 = 21600秒 = 6小时)
|
maxLifetime: 600000 # 10 分钟,小于常见 15 分钟断连窗口,并远小于典型 wait_timeout(8h),由池主动换连接
|
||||||
# 当前MySQL wait_timeout=28800秒(8小时),设置为6小时(21600000ms)以确保连接在服务器关闭前被回收
|
|
||||||
# HikariCP官方建议maxLifetime应为数据库wait_timeout的70-80%,6小时(75%)是一个理想的平衡值
|
|
||||||
maxLifetime: 21600000 # 连接最大生存时间,6小时(wait_timeout=8小时的75%,确保小于服务器超时时间)
|
|
||||||
# 连接验证配置
|
# 连接验证配置
|
||||||
connectionTestQuery: "SELECT 1"
|
connectionTestQuery: "SELECT 1"
|
||||||
# 连接泄漏检测(毫秒)- 如果连接超过此时间未归还,会记录警告
|
# 连接泄漏检测(毫秒)- 如果连接超过此时间未归还,会记录警告
|
||||||
leakDetectionThreshold: 60000 # 60秒
|
leakDetectionThreshold: 60000 # 60秒
|
||||||
# 缩短keepaliveTime到2分钟,更频繁地检测连接是否有效,避免使用已关闭的连接
|
# 池中连接定期 JDBC 探活,须小于 maxLifetime;1 分钟可对抗长时间无 SQL 导致的“假空闲”断链
|
||||||
keepaliveTime: 120000 # 2分钟,定期发送keepalive查询保持连接活跃
|
keepaliveTime: 60000
|
||||||
# 连接池名称(便于监控和调试)
|
# 连接池名称(便于监控和调试)
|
||||||
poolName: HikariPool-Main
|
poolName: HikariPool-Main
|
||||||
# 连接初始化配置
|
# 连接初始化配置
|
||||||
|
|||||||
@@ -201,8 +201,8 @@ INSERT INTO `tenant` (
|
|||||||
`create_time`,
|
`create_time`,
|
||||||
`update_time`
|
`update_time`
|
||||||
) VALUES (
|
) VALUES (
|
||||||
'DEFAULT_TENANT_ID', -- 建议改成真实的 UUID 或雪花ID
|
'TENANT_ID_CST_2026', -- 建议改成真实的 UUID 或雪花ID
|
||||||
'DEFAULT_TENANT',
|
'北京移多旺科技有限公司',
|
||||||
'默认租户',
|
'默认租户',
|
||||||
1,
|
1,
|
||||||
NULL,
|
NULL,
|
||||||
@@ -215,36 +215,36 @@ INSERT INTO `tenant` (
|
|||||||
|
|
||||||
-- 2. 为所有新增了 tenant_id 的表补齐历史数据
|
-- 2. 为所有新增了 tenant_id 的表补齐历史数据
|
||||||
-- 音频类
|
-- 音频类
|
||||||
UPDATE `audio_management` SET `tenant_id` = 'DEFAULT_TENANT_ID' WHERE `tenant_id` IS NULL;
|
UPDATE `audio_management` SET `tenant_id` = 'TENANT_ID_CST_2026' WHERE `tenant_id` IS NULL;
|
||||||
UPDATE `audio_segment` SET `tenant_id` = 'DEFAULT_TENANT_ID' WHERE `tenant_id` IS NULL;
|
UPDATE `audio_segment` SET `tenant_id` = 'TENANT_ID_CST_2026' WHERE `tenant_id` IS NULL;
|
||||||
UPDATE `audio_management_statistics` SET `tenant_id` = 'DEFAULT_TENANT_ID' WHERE `tenant_id` IS NULL;
|
UPDATE `audio_management_statistics` SET `tenant_id` = 'TENANT_ID_CST_2026' WHERE `tenant_id` IS NULL;
|
||||||
UPDATE `audio_text_analysis_furniture` SET `tenant_id` = 'DEFAULT_TENANT_ID' WHERE `tenant_id` IS NULL;
|
UPDATE `audio_text_analysis_furniture` SET `tenant_id` = 'TENANT_ID_CST_2026' WHERE `tenant_id` IS NULL;
|
||||||
UPDATE `audio_text_analysis_sop` SET `tenant_id` = 'DEFAULT_TENANT_ID' WHERE `tenant_id` IS NULL;
|
UPDATE `audio_text_analysis_sop` SET `tenant_id` = 'TENANT_ID_CST_2026' WHERE `tenant_id` IS NULL;
|
||||||
UPDATE `video_image_analysis` SET `tenant_id` = 'DEFAULT_TENANT_ID' WHERE `tenant_id` IS NULL;
|
UPDATE `video_image_analysis` SET `tenant_id` = 'TENANT_ID_CST_2026' WHERE `tenant_id` IS NULL;
|
||||||
UPDATE `video_management` SET `tenant_id` = 'DEFAULT_TENANT_ID' WHERE `tenant_id` IS NULL;
|
UPDATE `video_management` SET `tenant_id` = 'TENANT_ID_CST_2026' WHERE `tenant_id` IS NULL;
|
||||||
UPDATE `video_synthesis_log` SET `tenant_id` = 'DEFAULT_TENANT_ID' WHERE `tenant_id` IS NULL;
|
UPDATE `video_synthesis_log` SET `tenant_id` = 'TENANT_ID_CST_2026' WHERE `tenant_id` IS NULL;
|
||||||
|
|
||||||
-- 客户与销售类
|
-- 客户与销售类
|
||||||
UPDATE `customer_management` SET `tenant_id` = 'DEFAULT_TENANT_ID' WHERE `tenant_id` IS NULL;
|
UPDATE `customer_management` SET `tenant_id` = 'TENANT_ID_CST_2026' WHERE `tenant_id` IS NULL;
|
||||||
UPDATE `customer_profile_analysis` SET `tenant_id` = 'DEFAULT_TENANT_ID' WHERE `tenant_id` IS NULL;
|
UPDATE `customer_profile_analysis` SET `tenant_id` = 'TENANT_ID_CST_2026' WHERE `tenant_id` IS NULL;
|
||||||
UPDATE `communication_record` SET `tenant_id` = 'DEFAULT_TENANT_ID' WHERE `tenant_id` IS NULL;
|
UPDATE `communication_record` SET `tenant_id` = 'TENANT_ID_CST_2026' WHERE `tenant_id` IS NULL;
|
||||||
UPDATE `sales_management` SET `tenant_id` = 'DEFAULT_TENANT_ID' WHERE `tenant_id` IS NULL;
|
UPDATE `sales_management` SET `tenant_id` = 'TENANT_ID_CST_2026' WHERE `tenant_id` IS NULL;
|
||||||
|
|
||||||
-- 门店与项目类
|
-- 门店与项目类
|
||||||
UPDATE `dealership` SET `tenant_id` = 'DEFAULT_TENANT_ID' WHERE `tenant_id` IS NULL;
|
UPDATE `dealership` SET `tenant_id` = 'TENANT_ID_CST_2026' WHERE `tenant_id` IS NULL;
|
||||||
UPDATE `project_management` SET `tenant_id` = 'DEFAULT_TENANT_ID' WHERE `tenant_id` IS NULL;
|
UPDATE `project_management` SET `tenant_id` = 'TENANT_ID_CST_2026' WHERE `tenant_id` IS NULL;
|
||||||
UPDATE `device_management` SET `tenant_id` = 'DEFAULT_cst_20251216' WHERE `tenant_id` IS NULL;
|
UPDATE `device_management` SET `tenant_id` = 'TENANT_ID_CST_2026' WHERE `tenant_id` IS NULL;
|
||||||
|
|
||||||
-- 日志与其他
|
-- 日志与其他
|
||||||
UPDATE `yhy_audio_upload_log` SET `tenant_id` = 'DEFAULT_TENANT_ID' WHERE `tenant_id` IS NULL;
|
UPDATE `yhy_audio_upload_log` SET `tenant_id` = 'TENANT_ID_CST_2026' WHERE `tenant_id` IS NULL;
|
||||||
UPDATE `heartbeat_log` SET `tenant_id` = 'DEFAULT_TENANT_ID' WHERE `tenant_id` IS NULL;
|
UPDATE `heartbeat_log` SET `tenant_id` = 'TENANT_ID_CST_2026' WHERE `tenant_id` IS NULL;
|
||||||
UPDATE `tts_request_log` SET `tenant_id` = 'DEFAULT_TENANT_ID' WHERE `tenant_id` IS NULL;
|
UPDATE `tts_request_log` SET `tenant_id` = 'TENANT_ID_CST_2026' WHERE `tenant_id` IS NULL;
|
||||||
UPDATE `face_detect_log` SET `tenant_id` = 'DEFAULT_TENANT_ID' WHERE `tenant_id` IS NULL;
|
UPDATE `face_detect_log` SET `tenant_id` = 'TENANT_ID_CST_2026' WHERE `tenant_id` IS NULL;
|
||||||
|
|
||||||
-- 用户与权限
|
-- 用户与权限
|
||||||
UPDATE `user` SET `tenant_id` = 'DEFAULT_TENANT_ID' WHERE `tenant_id` IS NULL;
|
UPDATE `user` SET `tenant_id` = 'TENANT_ID_CST_2026' WHERE `tenant_id` IS NULL;
|
||||||
UPDATE `user_role` SET `tenant_id` = 'DEFAULT_TENANT_ID' WHERE `tenant_id` IS NULL;
|
UPDATE `user_role` SET `tenant_id` = 'TENANT_ID_CST_2026' WHERE `tenant_id` IS NULL;
|
||||||
UPDATE `role` SET `tenant_id` = 'DEFAULT_TENANT_ID' WHERE `tenant_id` IS NULL;
|
UPDATE `role` SET `tenant_id` = 'TENANT_ID_CST_2026' WHERE `tenant_id` IS NULL;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user