2.6 KiB
2.6 KiB
多实例启动配置修复说明
问题描述
在使用 start-multi-instance.sh 启动实例时,出现以下错误:
org.springframework.boot.context.config.InvalidConfigDataPropertyException: Property 'spring.profiles.include' imported from location 'class path resource [application-prod-9900.yml]' is invalid in a profile specific resource
问题原因
在Spring Boot 2.4+版本中,spring.profiles.include 属性不能在profile-specific的配置文件中使用(如 application-prod-9900.yml)。这个属性只能在主配置文件(application.yml)中使用。
修复方案
1. 修改配置文件结构
移除了所有实例配置文件中的 spring.profiles.include: prod 配置:
修复前:
# application-prod-9900.yml
spring:
profiles:
include: prod # ❌ 这在profile-specific文件中不被允许
修复后:
# application-prod-9900.yml
spring:
application:
name: RuoYi-Vue-Plus-9900 # ✅ 直接配置应用名称
2. 修改启动脚本
修改启动脚本,在启动时同时激活 prod 和具体的实例profile:
修复前:
-Dspring.profiles.active=$profile # 只激活 prod-9900
修复后:
-Dspring.profiles.active=prod,$profile # 同时激活 prod 和 prod-9900
修复的文件
backend/ruoyi-admin/src/main/resources/application-prod-9900.ymlbackend/ruoyi-admin/src/main/resources/application-prod-9901.ymlbackend/ruoyi-admin/src/main/resources/application-prod-9902.ymlbackend/ruoyi-admin/src/main/resources/application-prod-9903.ymldocs/部署文档/杭州第一技师部署文档/start-multi-instance.sh
配置加载顺序
修复后的配置加载顺序:
application.yml(主配置文件)application-prod.yml(生产环境基础配置)application-prod-9900.yml(9900端口实例特定配置)
验证方法
-
重新编译项目:
mvn clean package -Pprod -
启动单个实例测试:
./start-multi-instance.sh start 9900 -
检查启动日志,确认没有配置错误
-
访问应用验证功能正常:
curl http://localhost:9900
注意事项
- 确保在修改配置文件后重新编译项目
- 如果之前有实例在运行,需要先停止再重新启动
- 检查日志文件确认配置加载正确
- 验证监控中心和SnailJob配置是否正常工作