157 lines
4.4 KiB
Bash
Executable File
157 lines
4.4 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# 情绪博物馆微服务启动脚本
|
|
# 作者: emotion-museum
|
|
# 日期: 2025-07-12
|
|
|
|
echo "=========================================="
|
|
echo "情绪博物馆微服务启动脚本"
|
|
echo "=========================================="
|
|
|
|
# 检查Java环境
|
|
if ! command -v java &> /dev/null; then
|
|
echo "错误: 未找到Java环境,请安装JDK 17+"
|
|
exit 1
|
|
fi
|
|
|
|
# 检查Maven环境
|
|
if ! command -v mvn &> /dev/null; then
|
|
echo "错误: 未找到Maven环境,请安装Maven 3.6+"
|
|
exit 1
|
|
fi
|
|
|
|
# 检查Nacos是否运行
|
|
echo "检查Nacos服务状态..."
|
|
if ! curl -s http://localhost:8848/nacos/v1/ns/operator/metrics > /dev/null; then
|
|
echo "警告: Nacos服务未运行,请先启动Nacos"
|
|
echo "启动命令: sh nacos/bin/startup.sh -m standalone"
|
|
read -p "是否继续启动微服务? (y/n): " continue_start
|
|
if [[ $continue_start != "y" && $continue_start != "Y" ]]; then
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
# 检查MySQL是否运行
|
|
echo "检查MySQL服务状态..."
|
|
if ! mysqladmin ping -h localhost --silent; then
|
|
echo "警告: MySQL服务未运行,请先启动MySQL"
|
|
read -p "是否继续启动微服务? (y/n): " continue_start
|
|
if [[ $continue_start != "y" && $continue_start != "Y" ]]; then
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
# 检查Redis是否运行
|
|
echo "检查Redis服务状态..."
|
|
if ! redis-cli ping > /dev/null 2>&1; then
|
|
echo "警告: Redis服务未运行,请先启动Redis"
|
|
read -p "是否继续启动微服务? (y/n): " continue_start
|
|
if [[ $continue_start != "y" && $continue_start != "Y" ]]; then
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
# 编译项目
|
|
echo "编译项目..."
|
|
mvn clean compile -DskipTests
|
|
|
|
if [ $? -ne 0 ]; then
|
|
echo "错误: 项目编译失败"
|
|
exit 1
|
|
fi
|
|
|
|
echo "编译成功!"
|
|
|
|
# 启动服务函数
|
|
start_service() {
|
|
local service_name=$1
|
|
local service_port=$2
|
|
|
|
echo "启动 $service_name 服务 (端口: $service_port)..."
|
|
|
|
cd $service_name
|
|
nohup mvn spring-boot:run > ../logs/${service_name}.log 2>&1 &
|
|
local pid=$!
|
|
echo $pid > ../logs/${service_name}.pid
|
|
cd ..
|
|
|
|
echo "$service_name 服务启动中... PID: $pid"
|
|
|
|
# 等待服务启动
|
|
local count=0
|
|
while [ $count -lt 30 ]; do
|
|
if curl -s http://localhost:$service_port/actuator/health > /dev/null 2>&1; then
|
|
echo "$service_name 服务启动成功!"
|
|
return 0
|
|
fi
|
|
sleep 2
|
|
count=$((count + 1))
|
|
echo -n "."
|
|
done
|
|
|
|
echo ""
|
|
echo "警告: $service_name 服务启动超时,请检查日志"
|
|
return 1
|
|
}
|
|
|
|
# 创建日志目录
|
|
mkdir -p logs
|
|
|
|
# 启动服务
|
|
echo "开始启动微服务..."
|
|
|
|
# 1. 启动网关服务
|
|
start_service "emotion-gateway" 9000
|
|
|
|
# 2. 启动用户服务
|
|
start_service "emotion-user" 9001
|
|
|
|
# 3. 启动AI对话服务
|
|
start_service "emotion-ai" 9002
|
|
|
|
# 4. 启动情绪记录服务
|
|
start_service "emotion-record" 9003
|
|
|
|
# 5. 启动成长课题服务
|
|
start_service "emotion-growth" 9004
|
|
|
|
# 6. 启动地图探索服务
|
|
start_service "emotion-explore" 9005
|
|
|
|
# 7. 启动成就奖励服务
|
|
start_service "emotion-reward" 9006
|
|
|
|
# 8. 启动统计分析服务
|
|
start_service "emotion-stats" 9007
|
|
|
|
echo ""
|
|
echo "=========================================="
|
|
echo "微服务启动完成!"
|
|
echo "=========================================="
|
|
echo "服务状态:"
|
|
echo "- 网关服务: http://localhost:9000"
|
|
echo "- 用户服务: http://localhost:9001"
|
|
echo "- AI对话服务: http://localhost:9002"
|
|
echo "- 情绪记录服务: http://localhost:9003"
|
|
echo "- 成长课题服务: http://localhost:9004"
|
|
echo "- 地图探索服务: http://localhost:9005"
|
|
echo "- 成就奖励服务: http://localhost:9006"
|
|
echo "- 统计分析服务: http://localhost:9007"
|
|
echo ""
|
|
echo "监控地址:"
|
|
echo "- 网关监控: http://localhost:9000/actuator/health"
|
|
echo "- 用户监控: http://localhost:9001/actuator/health"
|
|
echo "- AI对话监控: http://localhost:9002/actuator/health"
|
|
echo "- 情绪记录监控: http://localhost:9003/actuator/health"
|
|
echo "- 成长课题监控: http://localhost:9004/actuator/health"
|
|
echo "- 地图探索监控: http://localhost:9005/actuator/health"
|
|
echo "- 成就奖励监控: http://localhost:9006/actuator/health"
|
|
echo "- 统计分析监控: http://localhost:9007/actuator/health"
|
|
echo ""
|
|
echo "API文档地址:"
|
|
echo "- 网关API: http://localhost:9000/doc.html"
|
|
echo ""
|
|
echo "日志文件位置: ./logs/"
|
|
echo "停止服务命令: ./stop-services.sh"
|
|
echo "=========================================="
|