主要更新: - 调整并发配置为50人(数据库连接池30,Tomcat线程150,异步线程池5/20) - 实现无界阻塞队列(LinkedBlockingQueue)任务处理 - 实现分镜视频保存功能(保存到uploads目录) - 统一管理页面导航栏和右上角样式 - 添加日活用户统计功能 - 优化视频拼接和保存逻辑 - 添加部署文档和快速部署指南 - 更新.gitignore排除敏感配置文件
8.9 KiB
8.9 KiB
系统配置指南
本文档列出了系统中所有需要手动配置的重要配置项。
📋 配置项分类
1. 🔐 数据库配置(必须)
位置: application-dev.properties / application-prod.properties
# 开发环境(直接配置)
spring.datasource.url=jdbc:mysql://localhost:3306/aigc_platform?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
spring.datasource.username=root
spring.datasource.password=你的数据库密码
# 生产环境(使用环境变量)
spring.datasource.url=${DB_URL}
spring.datasource.username=${DB_USERNAME}
spring.datasource.password=${DB_PASSWORD}
说明:
- 开发环境:直接修改配置文件中的数据库连接信息
- 生产环境:通过环境变量配置,更安全
2. 🔑 JWT配置(必须)
位置: application-dev.properties / application-prod.properties
# 开发环境
jwt.secret=你的JWT密钥(至少128位,建议256位)
jwt.expiration=86400000 # 24小时,单位毫秒
# 生产环境(使用环境变量)
jwt.secret=${JWT_SECRET}
jwt.expiration=${JWT_EXPIRATION:604800000} # 默认7天
说明:
jwt.secret: 用于签名JWT token的密钥,必须修改为强随机字符串jwt.expiration: Token过期时间(毫秒)
3. 🤖 AI API配置(必须)
位置: application-dev.properties / application-prod.properties
# Comfly API配置(文生视频、图生视频、分镜视频)
ai.api.base-url=https://ai.comfly.chat
ai.api.key=你的Comfly API密钥
# Comfly API配置(文生图)
ai.image.api.base-url=https://ai.comfly.chat
ai.image.api.key=你的Comfly API密钥
说明:
- 可通过 API管理页面 在线修改(推荐)
- 或直接修改配置文件
- 修改后需要重启应用
4. 💰 支付宝配置(可选,如需支付功能)
位置: application-dev.properties / application-prod.properties
# 开发环境(沙箱测试)
alipay.app-id=你的支付宝应用ID
alipay.private-key=你的应用私钥(RSA2格式)
alipay.public-key=支付宝公钥(RSA2格式)
alipay.gateway-url=https://openapi-sandbox.dl.alipaydev.com/gateway.do
alipay.notify-url=你的回调通知URL
alipay.return-url=你的支付返回URL
# 生产环境(使用环境变量)
alipay.app-id=${ALIPAY_APP_ID}
alipay.private-key=${ALIPAY_PRIVATE_KEY}
alipay.public-key=${ALIPAY_PUBLIC_KEY}
alipay.gateway-url=https://openapi.alipay.com/gateway.do
alipay.notify-url=${ALIPAY_NOTIFY_URL}
alipay.return-url=${ALIPAY_RETURN_URL}
说明:
- 开发环境使用支付宝沙箱进行测试
- 生产环境需要申请正式支付宝应用
- 私钥和公钥必须是RSA2格式
5. 📧 腾讯云SES邮件配置(可选,如需邮件功能)
位置: application-dev.properties / application-prod.properties
# 开发环境
tencent.ses.secret-id=你的腾讯云SecretId
tencent.ses.secret-key=你的腾讯云SecretKey
tencent.ses.region=ap-hongkong
tencent.ses.from-email=你的发件邮箱
tencent.ses.from-name=AIGC平台
tencent.ses.template-id=你的邮件模板ID
# 生产环境(使用环境变量)
tencent.ses.secret-id=${TENCENT_SES_SECRET_ID}
tencent.ses.secret-key=${TENCENT_SES_SECRET_KEY}
tencent.ses.from-email=${TENCENT_SES_FROM_EMAIL}
tencent.ses.template-id=${TENCENT_SES_TEMPLATE_ID}
说明:
- 需要在腾讯云SES控制台创建邮件模板
- 如果
template-id为0或未配置,将使用开发模式(仅记录日志)
6. 🎬 FFmpeg配置(可选,如需视频拼接功能)
位置: application-dev.properties / application-prod.properties
# 开发环境
app.ffmpeg.path=C:/Users/UI/AppData/Local/Microsoft/WinGet/Packages/Gyan.FFmpeg_Microsoft.Winget.Source_8wekyb3d8bbwe/ffmpeg-8.0-full_build/bin/ffmpeg.exe
app.temp.dir=./temp
# 生产环境(使用环境变量)
app.ffmpeg.path=${FFMPEG_PATH:ffmpeg} # 如果在PATH中,直接使用"ffmpeg"
app.temp.dir=${TEMP_DIR:./temp}
说明:
app.ffmpeg.path: FFmpeg可执行文件路径- Windows: 使用完整路径,如
C:\ffmpeg\bin\ffmpeg.exe - Linux/Mac: 如果在PATH中,使用
ffmpeg;否则使用完整路径,如/usr/bin/ffmpeg
- Windows: 使用完整路径,如
app.temp.dir: 临时文件目录(用于视频处理)- 相对路径:基于应用运行目录
- 绝对路径:如
/app/temp或C:\app\temp
7. 🖥️ 服务器配置(可选,根据需求调整)
位置: application-dev.properties / application-prod.properties
# 服务器端口
server.port=8080
# Tomcat线程池配置(支持并发)
server.tomcat.threads.max=1000
server.tomcat.threads.min-spare=100
server.tomcat.max-connections=10000
server.tomcat.accept-count=500
# 请求体大小限制(支持大图片Base64编码)
server.tomcat.max-http-post-size=600MB
spring.servlet.multipart.max-file-size=500MB
spring.servlet.multipart.max-request-size=600MB
说明:
- 根据实际并发需求调整线程池配置
- 如果不需要处理大文件,可以减小请求体大小限制
8. 📊 数据库连接池配置(可选,根据需求调整)
位置: application-dev.properties / application-prod.properties
# HikariCP连接池配置
spring.datasource.hikari.maximum-pool-size=200
spring.datasource.hikari.minimum-idle=20
spring.datasource.hikari.idle-timeout=300000
spring.datasource.hikari.max-lifetime=1200000
spring.datasource.hikari.connection-timeout=30000
spring.datasource.hikari.leak-detection-threshold=60000
说明:
- 根据数据库服务器性能和并发需求调整
- 默认配置支持50人并发
9. 🗄️ JPA配置(开发/生产环境不同)
位置: application-dev.properties / application-prod.properties
# 开发环境
spring.jpa.hibernate.ddl-auto=update # 自动更新表结构
spring.jpa.show-sql=true # 显示SQL语句
# 生产环境
spring.jpa.hibernate.ddl-auto=validate # 仅验证,不自动修改
spring.jpa.show-sql=false # 不显示SQL语句
说明:
- 生产环境必须使用
validate,避免自动修改数据库结构 - 开发环境可以使用
update方便开发
🚀 快速配置清单
开发环境必须配置:
- 数据库连接信息(URL、用户名、密码)
- JWT密钥(修改为强随机字符串)
- AI API密钥(Comfly API)
开发环境可选配置:
- 支付宝沙箱配置(如需测试支付)
- 腾讯云SES配置(如需测试邮件)
- FFmpeg路径(如需视频拼接)
生产环境必须配置(通过环境变量):
DB_URL- 数据库连接URLDB_USERNAME- 数据库用户名DB_PASSWORD- 数据库密码JWT_SECRET- JWT密钥ALIPAY_APP_ID- 支付宝应用ID(如需支付)ALIPAY_PRIVATE_KEY- 支付宝私钥(如需支付)ALIPAY_PUBLIC_KEY- 支付宝公钥(如需支付)ALIPAY_NOTIFY_URL- 支付回调URL(如需支付)ALIPAY_RETURN_URL- 支付返回URL(如需支付)TENCENT_SES_SECRET_ID- 腾讯云SecretId(如需邮件)TENCENT_SES_SECRET_KEY- 腾讯云SecretKey(如需邮件)TENCENT_SES_FROM_EMAIL- 发件邮箱(如需邮件)TENCENT_SES_TEMPLATE_ID- 邮件模板ID(如需邮件)FFMPEG_PATH- FFmpeg路径(如需视频拼接)TEMP_DIR- 临时文件目录(如需视频拼接)
⚠️ 安全注意事项
-
不要将生产环境配置提交到代码仓库
- 使用环境变量或外部配置文件
- 将敏感信息添加到
.gitignore
-
JWT密钥必须足够强
- 至少128位,建议256位
- 使用随机字符串生成器生成
-
数据库密码
- 使用强密码
- 生产环境必须通过环境变量配置
-
API密钥
- 定期更换
- 不要泄露给他人
📝 配置优先级
- 环境变量 > 配置文件
- application-{profile}.properties > application.properties
- 外部配置文件 > classpath配置文件
🔄 配置更新方式
方式1:直接修改配置文件(开发环境)
- 修改
application-dev.properties - 重启应用
方式2:通过管理页面(推荐)
- API密钥:通过"API管理"页面在线修改
- 会员价格:通过"系统设置"页面在线修改
方式3:环境变量(生产环境)
- 设置环境变量
- 重启应用
📞 配置问题排查
-
配置不生效
- 检查配置文件路径是否正确
- 检查环境变量是否正确设置
- 检查是否需要重启应用
-
数据库连接失败
- 检查数据库服务是否启动
- 检查连接URL、用户名、密码是否正确
- 检查防火墙设置
-
API调用失败
- 检查API密钥是否正确
- 检查网络连接
- 查看日志文件获取详细错误信息