c77352877d
主要更新: 1. 统一所有微服务端口配置(19000-19008) 2. 为所有服务创建本地/测试/生产三套环境配置 3. 配置Nacos认证密码(本地:Peanut2817*#, 测试/生产:EmotionMuseum2025) 4. 优化网关路由配置,支持负载均衡和WebSocket 5. 新增emotion-websocket模块,支持实时聊天 6. 前端集成WebSocket,替代HTTP轮询 7. 添加配置验证和管理工具脚本 技术特性: - 完整的环境隔离和服务发现 - WebSocket实时通信支持 - 负载均衡路由配置 - 跨域和安全配置 - 自动重连和心跳检测
256 lines
6.8 KiB
Bash
Executable File
256 lines
6.8 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# ============================================================================
|
|
# 批量更新所有微服务的Nacos配置
|
|
# 为每个服务创建本地、测试、生产环境的配置文件
|
|
# ============================================================================
|
|
|
|
# 颜色定义
|
|
RED='\033[0;31m'
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[1;33m'
|
|
BLUE='\033[0;34m'
|
|
NC='\033[0m' # No Color
|
|
|
|
echo -e "${BLUE}===========================================${NC}"
|
|
echo -e "${BLUE}批量更新微服务Nacos配置${NC}"
|
|
echo -e "${BLUE}===========================================${NC}"
|
|
|
|
# 服务配置
|
|
SERVICES="emotion-user:19001 emotion-ai:19002 emotion-record:19003 emotion-growth:19004 emotion-explore:19005 emotion-reward:19006 emotion-websocket:19007 emotion-stats:19008"
|
|
|
|
# 生成本地环境配置
|
|
generate_local_config() {
|
|
local service_name=$1
|
|
local port=$2
|
|
|
|
cat > "backend/${service_name}/src/main/resources/application-local.yml" << EOF
|
|
# 本地开发环境配置
|
|
|
|
spring:
|
|
cloud:
|
|
nacos:
|
|
discovery:
|
|
server-addr: localhost:8848
|
|
namespace:
|
|
group: DEFAULT_GROUP
|
|
enabled: true
|
|
username: nacos
|
|
password: nacos
|
|
metadata:
|
|
version: 1.0.0
|
|
zone: local
|
|
register-enabled: true
|
|
ephemeral: true
|
|
cluster-name: DEFAULT
|
|
service: \${spring.application.name}
|
|
weight: 1
|
|
heart-beat-interval: 5000
|
|
heart-beat-timeout: 15000
|
|
ip-delete-timeout: 30000
|
|
config:
|
|
server-addr: localhost:8848
|
|
namespace:
|
|
group: DEFAULT_GROUP
|
|
file-extension: yml
|
|
enabled: false
|
|
username: nacos
|
|
password: nacos
|
|
|
|
# 数据源配置
|
|
datasource:
|
|
driver-class-name: com.mysql.cj.jdbc.Driver
|
|
url: jdbc:mysql://localhost:3306/emotion_museum?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true
|
|
username: root
|
|
password: 123456
|
|
|
|
# Redis配置
|
|
data:
|
|
redis:
|
|
host: localhost
|
|
port: 6379
|
|
password:
|
|
database: 0
|
|
|
|
# 日志配置
|
|
logging:
|
|
level:
|
|
com.emotionmuseum: debug
|
|
com.baomidou.mybatisplus: debug
|
|
com.alibaba.nacos: info
|
|
file:
|
|
name: logs/${service_name}-local.log
|
|
EOF
|
|
}
|
|
|
|
# 生成测试环境配置
|
|
generate_test_config() {
|
|
local service_name=$1
|
|
local port=$2
|
|
|
|
cat > "backend/${service_name}/src/main/resources/application-test.yml" << EOF
|
|
# 测试环境配置
|
|
|
|
spring:
|
|
cloud:
|
|
nacos:
|
|
discovery:
|
|
server-addr: 47.111.10.27:8848
|
|
namespace: test
|
|
group: DEFAULT_GROUP
|
|
enabled: true
|
|
username: nacos
|
|
password: nacos
|
|
metadata:
|
|
version: 1.0.0
|
|
zone: test
|
|
register-enabled: true
|
|
ephemeral: true
|
|
cluster-name: DEFAULT
|
|
service: \${spring.application.name}
|
|
weight: 1
|
|
heart-beat-interval: 5000
|
|
heart-beat-timeout: 15000
|
|
ip-delete-timeout: 30000
|
|
config:
|
|
server-addr: 47.111.10.27:8848
|
|
namespace: test
|
|
group: DEFAULT_GROUP
|
|
file-extension: yml
|
|
enabled: false
|
|
username: nacos
|
|
password: nacos
|
|
|
|
# 数据源配置
|
|
datasource:
|
|
driver-class-name: com.mysql.cj.jdbc.Driver
|
|
url: jdbc:mysql://47.111.10.27:3306/emotion_museum?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true
|
|
username: root
|
|
password: EmotionMuseum2025*#
|
|
|
|
# Redis配置
|
|
data:
|
|
redis:
|
|
host: 47.111.10.27
|
|
port: 6379
|
|
password: EmotionMuseum2025*#
|
|
database: 0
|
|
|
|
# 日志配置
|
|
logging:
|
|
level:
|
|
com.emotionmuseum: info
|
|
com.baomidou.mybatisplus: info
|
|
com.alibaba.nacos: warn
|
|
file:
|
|
name: logs/${service_name}-test.log
|
|
EOF
|
|
}
|
|
|
|
# 生成生产环境配置
|
|
generate_prod_config() {
|
|
local service_name=$1
|
|
local port=$2
|
|
|
|
cat > "backend/${service_name}/src/main/resources/application-prod.yml" << EOF
|
|
# 生产环境配置
|
|
|
|
spring:
|
|
cloud:
|
|
nacos:
|
|
discovery:
|
|
server-addr: 47.111.10.27:8848
|
|
namespace: prod
|
|
group: DEFAULT_GROUP
|
|
enabled: true
|
|
username: nacos
|
|
password: nacos
|
|
metadata:
|
|
version: 1.0.0
|
|
zone: prod
|
|
register-enabled: true
|
|
ephemeral: true
|
|
cluster-name: DEFAULT
|
|
service: \${spring.application.name}
|
|
weight: 1
|
|
heart-beat-interval: 5000
|
|
heart-beat-timeout: 15000
|
|
ip-delete-timeout: 30000
|
|
config:
|
|
server-addr: 47.111.10.27:8848
|
|
namespace: prod
|
|
group: DEFAULT_GROUP
|
|
file-extension: yml
|
|
enabled: false
|
|
username: nacos
|
|
password: nacos
|
|
|
|
# 数据源配置
|
|
datasource:
|
|
driver-class-name: com.mysql.cj.jdbc.Driver
|
|
url: jdbc:mysql://47.111.10.27:3306/emotion_museum?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true
|
|
username: root
|
|
password: EmotionMuseum2025*#
|
|
|
|
# Redis配置
|
|
data:
|
|
redis:
|
|
host: 47.111.10.27
|
|
port: 6379
|
|
password: EmotionMuseum2025*#
|
|
database: 0
|
|
|
|
# 日志配置
|
|
logging:
|
|
level:
|
|
com.emotionmuseum: warn
|
|
com.baomidou.mybatisplus: warn
|
|
com.alibaba.nacos: error
|
|
file:
|
|
name: logs/${service_name}-prod.log
|
|
EOF
|
|
}
|
|
|
|
# 处理每个服务
|
|
for service_info in $SERVICES; do
|
|
service_name=$(echo $service_info | cut -d: -f1)
|
|
port=$(echo $service_info | cut -d: -f2)
|
|
|
|
echo -e "${YELLOW}处理服务: $service_name (端口: $port)${NC}"
|
|
|
|
# 检查服务目录是否存在
|
|
if [ ! -d "backend/$service_name" ]; then
|
|
echo -e "${RED}❌ 服务目录不存在: backend/$service_name${NC}"
|
|
continue
|
|
fi
|
|
|
|
# 创建resources目录(如果不存在)
|
|
mkdir -p "backend/$service_name/src/main/resources"
|
|
|
|
# 生成配置文件
|
|
echo " 生成本地环境配置..."
|
|
generate_local_config "$service_name" "$port"
|
|
|
|
echo " 生成测试环境配置..."
|
|
generate_test_config "$service_name" "$port"
|
|
|
|
echo " 生成生产环境配置..."
|
|
generate_prod_config "$service_name" "$port"
|
|
|
|
echo -e "${GREEN}✅ $service_name 配置文件生成完成${NC}"
|
|
done
|
|
|
|
echo ""
|
|
echo -e "${BLUE}===========================================${NC}"
|
|
echo -e "${GREEN}✅ 所有服务的Nacos配置更新完成!${NC}"
|
|
echo -e "${BLUE}===========================================${NC}"
|
|
|
|
echo ""
|
|
echo -e "${YELLOW}配置说明:${NC}"
|
|
echo -e "1. 本地环境: localhost:8848, 无命名空间"
|
|
echo -e "2. 测试环境: 47.111.10.27:8848, test命名空间"
|
|
echo -e "3. 生产环境: 47.111.10.27:8848, prod命名空间"
|
|
echo ""
|
|
echo -e "${YELLOW}使用方法:${NC}"
|
|
echo -e "启动时指定环境: ${GREEN}--spring.profiles.active=local|test|prod${NC}"
|