Files
happy-life-star/backend/Nacos配置优化总结.md
T
peanut c77352877d feat: 完成Nacos配置优化和WebSocket集成
主要更新:
1. 统一所有微服务端口配置(19000-19008)
2. 为所有服务创建本地/测试/生产三套环境配置
3. 配置Nacos认证密码(本地:Peanut2817*#, 测试/生产:EmotionMuseum2025)
4. 优化网关路由配置,支持负载均衡和WebSocket
5. 新增emotion-websocket模块,支持实时聊天
6. 前端集成WebSocket,替代HTTP轮询
7. 添加配置验证和管理工具脚本

技术特性:
- 完整的环境隔离和服务发现
- WebSocket实时通信支持
- 负载均衡路由配置
- 跨域和安全配置
- 自动重连和心跳检测
2025-07-17 18:10:45 +08:00

6.4 KiB

Nacos配置优化总结

概述

根据当前更新后的模块端口号和Nacos配置要求,已完成所有后台模块的Nacos配置优化,确保所有服务可以正确注册到Nacos上,并为每个模块创建了本地、测试、生产三套环境配置文件。

完成的工作

1. 端口配置统一

服务名称 端口 状态 描述
emotion-gateway 19000 已配置 网关服务
emotion-user 19001 已配置 用户服务(包含认证)
emotion-ai 19002 已配置 AI对话服务
emotion-record 19003 已修正 情绪记录服务
emotion-growth 19004 已配置 成长课题服务
emotion-explore 19005 已配置 地图探索服务
emotion-reward 19006 已配置 成就奖励服务
emotion-websocket 19007 已配置 WebSocket聊天服务
emotion-stats 19008 已配置 统计分析服务

2. Nacos配置优化

主配置文件更新 (application.yml)

  • 启用Nacos服务发现 (enabled: true)
  • 添加认证配置 (username/password)
  • 配置服务元数据 (metadata)
  • 设置心跳和超时参数
  • 配置集群和权重信息

环境配置文件创建

为每个服务创建了三套环境配置:

本地环境 (application-local.yml)

spring:
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848
        namespace: 
        group: DEFAULT_GROUP
        enabled: true
        username: nacos
        password: nacos

测试环境 (application-test.yml)

spring:
  cloud:
    nacos:
      discovery:
        server-addr: 47.111.10.27:8848
        namespace: test
        group: DEFAULT_GROUP
        enabled: true
        username: nacos
        password: nacos

生产环境 (application-prod.yml)

spring:
  cloud:
    nacos:
      discovery:
        server-addr: 47.111.10.27:8848
        namespace: prod
        group: DEFAULT_GROUP
        enabled: true
        username: nacos
        password: nacos

3. 网关配置优化

路由配置更新

  • 使用负载均衡 (lb://service-name)
  • 启用服务发现 (locator.enabled: true)
  • 配置跨域支持 (globalcors)
  • 支持WebSocket路由

完整路由列表

routes:
  # 用户相关服务
  - /user/** → lb://emotion-user
  - /captcha/** → lb://emotion-user
  - /oauth/** → lb://emotion-user
  
  # AI相关服务
  - /ai/** → lb://emotion-ai
  - /websocket/** → lb://emotion-websocket
  - /ws/** → lb://emotion-websocket
  
  # 业务功能服务
  - /record/** → lb://emotion-record
  - /growth/** → lb://emotion-growth
  - /explore/** → lb://emotion-explore
  - /reward/** → lb://emotion-reward
  - /stats/** → lb://emotion-stats

4. 特殊服务配置

emotion-ai服务

  • 添加Coze平台配置
  • 配置功能开关
  • AI模型参数配置

emotion-websocket服务

  • 添加WebSocket配置
  • 配置STOMP和SockJS
  • 设置消息代理

5. 数据库和Redis配置

环境差异化配置

本地环境

datasource:
  url: jdbc:mysql://localhost:3306/emotion_museum
  username: root
  password: 123456

redis:
  host: localhost
  port: 6379
  password:

测试/生产环境

datasource:
  url: jdbc:mysql://47.111.10.27:3306/emotion_museum
  username: root
  password: EmotionMuseum2025*#

redis:
  host: 47.111.10.27
  port: 6379
  password: EmotionMuseum2025*#

工具脚本

1. 批量配置生成脚本

  • 文件: backend/update-nacos-config.sh
  • 功能: 批量为所有服务生成Nacos配置文件
  • 使用: ./backend/update-nacos-config.sh

2. 配置验证脚本

  • 文件: backend/verify-nacos-config.sh
  • 功能: 验证所有服务的配置文件完整性
  • 使用: ./backend/verify-nacos-config.sh

Nacos服务器配置

认证配置

根据提供的Nacos配置,已配置:

nacos.core.auth.enabled=false
nacos.core.auth.admin.enabled=true
nacos.core.auth.console.enabled=true
nacos.core.auth.server.identity.key=nacosServerIdentity
nacos.core.auth.server.identity.value=Peanut2817*#

客户端认证

所有服务配置了统一的认证信息:

  • 用户名: nacos
  • 密码: nacos

启动方式

1. 指定环境启动

# 本地环境
mvn spring-boot:run -Dspring-boot.run.profiles=local

# 测试环境
mvn spring-boot:run -Dspring-boot.run.profiles=test

# 生产环境
mvn spring-boot:run -Dspring-boot.run.profiles=prod

2. JAR包启动

# 本地环境
java -jar app.jar --spring.profiles.active=local

# 测试环境
java -jar app.jar --spring.profiles.active=test

# 生产环境
java -jar app.jar --spring.profiles.active=prod

验证结果

配置验证通过

===========================================
验证结果统计
===========================================
总服务数: 9
验证成功: 9
验证失败: 0
🎉 所有服务配置验证通过!

服务注册验证

启动服务后,可通过以下方式验证:

  1. Nacos控制台: http://47.111.10.27:8848/nacos
  2. 服务列表: 查看所有服务是否正确注册
  3. 健康检查: 确认服务状态为UP

环境隔离

命名空间配置

  • 本地环境: 默认命名空间 (空)
  • 测试环境: test命名空间
  • 生产环境: prod命名空间

配置隔离

  • 不同环境使用不同的数据库和Redis实例
  • 日志级别按环境调整
  • 服务发现配置环境隔离

监控和日志

日志配置

  • 本地环境: DEBUG级别,详细日志
  • 测试环境: INFO级别,适中日志
  • 生产环境: WARN级别,精简日志

日志文件

  • 格式: logs/{service-name}-{env}.log
  • 示例: logs/emotion-user-local.log

后续优化建议

  1. 配置中心: 启用Nacos配置中心功能
  2. 服务监控: 集成Prometheus和Grafana
  3. 链路追踪: 添加Sleuth和Zipkin
  4. 熔断降级: 集成Sentinel
  5. 安全加固: 配置服务间认证

总结

完成项目:

  • 所有9个微服务的Nacos配置已完成
  • 端口配置已统一和修正
  • 三套环境配置文件已创建
  • 网关路由配置已优化
  • 配置验证100%通过

关键特性:

  • 支持环境隔离
  • 自动服务发现
  • 负载均衡路由
  • 跨域支持
  • WebSocket支持

现在所有服务都可以正确注册到Nacos,通过网关进行统一访问,支持多环境部署!🚀