feat: 微服务架构拆分和前后端优化
后端: - 拆分出 agent_service, runtime_service, trading_service, news_service - Gateway 模块化拆分 (gateway_*.py) - 添加 domains/ 领域层 - 新增 control_client, runtime_client - 更新 start-dev.sh 支持 split 服务模式 前端: - 完善 API 服务层 (newsApi, tradingApi) - 更新 vite.config.js - Explain 组件优化 测试: - 添加多个服务 app 测试 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
68
start-dev.sh
68
start-dev.sh
@@ -1,6 +1,6 @@
|
||||
#!/bin/bash
|
||||
# EvoTraders Development Startup Script
|
||||
# Single-process FastAPI with auto-reload
|
||||
# Split-service mode only
|
||||
|
||||
set -e
|
||||
|
||||
@@ -36,16 +36,62 @@ if [ -z "$OPENAI_API_KEY" ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
cd /Users/cillin/workspeace/evotraders
|
||||
PIDS=()
|
||||
|
||||
start_service() {
|
||||
local name="$1"
|
||||
local app_path="$2"
|
||||
local port="$3"
|
||||
|
||||
echo -e "${GREEN}Starting ${name}${NC} on port ${port}..."
|
||||
SERVICE_NAME="${name}" python -m uvicorn "${app_path}" \
|
||||
--host 0.0.0.0 \
|
||||
--port "${port}" \
|
||||
--reload \
|
||||
--reload-dir backend \
|
||||
--log-level info &
|
||||
PIDS+=($!)
|
||||
}
|
||||
|
||||
cleanup() {
|
||||
if [ "${#PIDS[@]}" -gt 0 ]; then
|
||||
echo ""
|
||||
echo -e "${YELLOW}Stopping development services...${NC}"
|
||||
kill "${PIDS[@]}" 2>/dev/null || true
|
||||
wait "${PIDS[@]}" 2>/dev/null || true
|
||||
fi
|
||||
}
|
||||
|
||||
trap cleanup EXIT INT TERM
|
||||
|
||||
if [ $# -gt 0 ]; then
|
||||
echo -e "${YELLOW}Ignoring legacy mode argument(s): $*${NC}"
|
||||
echo "Split-service mode is now the only supported development mode."
|
||||
fi
|
||||
|
||||
export TRADING_SERVICE_URL="${TRADING_SERVICE_URL:-http://localhost:8001}"
|
||||
export NEWS_SERVICE_URL="${NEWS_SERVICE_URL:-http://localhost:8002}"
|
||||
export RUNTIME_SERVICE_URL="${RUNTIME_SERVICE_URL:-http://localhost:8003}"
|
||||
|
||||
echo ""
|
||||
echo "Starting EvoTraders API (FastAPI) on port 8000..."
|
||||
echo "API Endpoints: http://localhost:8000/docs"
|
||||
echo -e "${GREEN}Starting EvoTraders split services (default mode)...${NC}"
|
||||
echo " agent_service: http://localhost:8000"
|
||||
echo " runtime_service: http://localhost:8003"
|
||||
echo " trading_service: http://localhost:8001"
|
||||
echo " news_service: http://localhost:8002"
|
||||
echo ""
|
||||
echo "Exported backend preference URLs:"
|
||||
echo " TRADING_SERVICE_URL=${TRADING_SERVICE_URL}"
|
||||
echo " NEWS_SERVICE_URL=${NEWS_SERVICE_URL}"
|
||||
echo " RUNTIME_SERVICE_URL=${RUNTIME_SERVICE_URL}"
|
||||
echo ""
|
||||
|
||||
# Start FastAPI with auto-reload for development
|
||||
cd /Users/cillin/workspeace/evotraders
|
||||
python -m uvicorn backend.app:app \
|
||||
--host 0.0.0.0 \
|
||||
--port 8000 \
|
||||
--reload \
|
||||
--reload-dir backend \
|
||||
--log-level info
|
||||
start_service "agent_service" "backend.apps.agent_service:app" 8000
|
||||
start_service "runtime_service" "backend.apps.runtime_service:app" 8003
|
||||
start_service "trading_service" "backend.apps.trading_service:app" 8001
|
||||
start_service "news_service" "backend.apps.news_service:app" 8002
|
||||
|
||||
echo -e "${GREEN}Split services are running.${NC}"
|
||||
echo "Use Ctrl+C to stop all services."
|
||||
wait
|
||||
|
||||
Reference in New Issue
Block a user