服务生命周期管理
Service Lifecycle Management
管理多个微服务的启动、健康检查、故障检测和优雅关闭
子问题
1.端口冲突检测
2.服务健康探测
3.进程监控与重启
4.优雅关闭
5.多服务端口环境变量统一管理
6.日志文件重定向与隔离
各项目的解法1 solutions
Signals
横向对比
| 维度 | AI-Trader |
|---|---|
| 服务发现 | 环境变量驱动端口 + 声明式 service_configs 字典注册 |
| 端口管理 | 启动前 socket 探测 + 交互式自动递增分配(范围 +100) |
| 健康检查 | 双重验证:process.poll() 存活 + socket connect_ex 端口响应 |
| 进程监控 | keep_alive 5 秒轮询 poll(),报告但不自动重启 |
| 优雅关闭 | SIGINT/SIGTERM → terminate → wait(5s) → kill 两阶段 |
| 日志管理 | 每服务独立 log 文件,stderr 合并到 stdout |
| 传输协议 | FastMCP streamable-http,Agent 端 langchain_mcp_adapters 连接 |
最佳实践
1.服务启动后必须做健康检查确认可用
2.使用 sys.executable 确保子进程与管理进程使用同一 Python 解释器
3.端口自动分配应设置搜索范围上限防止无限循环
4.两阶段关闭:先 terminate 给服务清理机会,超时再 kill 兜底