Files
hzdyjs/docs/部署文档/杭州第一技师部署文档/多实例启动配置修复说明.md
T
2025-08-31 19:38:31 +08:00

2.6 KiB
Raw Blame History

多实例启动配置修复说明

问题描述

在使用 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

修复的文件

  1. backend/ruoyi-admin/src/main/resources/application-prod-9900.yml
  2. backend/ruoyi-admin/src/main/resources/application-prod-9901.yml
  3. backend/ruoyi-admin/src/main/resources/application-prod-9902.yml
  4. backend/ruoyi-admin/src/main/resources/application-prod-9903.yml
  5. docs/部署文档/杭州第一技师部署文档/start-multi-instance.sh

配置加载顺序

修复后的配置加载顺序:

  1. application.yml (主配置文件)
  2. application-prod.yml (生产环境基础配置)
  3. application-prod-9900.yml (9900端口实例特定配置)

验证方法

  1. 重新编译项目:

    mvn clean package -Pprod
    
  2. 启动单个实例测试:

    ./start-multi-instance.sh start 9900
    
  3. 检查启动日志,确认没有配置错误

  4. 访问应用验证功能正常:

    curl http://localhost:9900
    

注意事项

  1. 确保在修改配置文件后重新编译项目
  2. 如果之前有实例在运行,需要先停止再重新启动
  3. 检查日志文件确认配置加载正确
  4. 验证监控中心和SnailJob配置是否正常工作

相关文档