外观
Project 03 — Digital Twin Server
项目目标
综合前两个项目的能力,构建设备状态、实时位置、告警和统计服务,并完成容器化与生产部署,作为 Vue / Three.js 数字孪生前端的后端。
启动阶段:Phase 06 — Real-time
完成阶段:Phase 08 — Deployment
当前状态:未开始
项目按阶段增量交付,不在 Phase 06 一次性设计最终架构。
Phase 06 里程碑 — 实时设备状态
- 定义设备、位置、运行状态和告警消息
- 提供设备快照 HTTP API
- 通过 WebSocket 推送位置和状态变化
- 支持按仓库或区域订阅 Room
- 实现心跳、连接生命周期和基础限流
验收标准
- Three.js 或测试客户端能够加载快照并持续接收增量更新
- 同一设备消息具有稳定 ID 和时间戳
- 客户端重连后能重新获取一致快照
- 服务端能清理断开连接并处理慢客户端
Phase 07 里程碑 — 工程化与容器化
- 整理清晰的项目分层、配置和日志
- 覆盖核心领域逻辑、Handler 和 Repository 测试
- 为关键并发路径增加 race 检查
- 使用 Docker 构建 Go 服务镜像
- 使用 Docker Compose 编排 Go、PostgreSQL 和 Redis
- 提供健康检查和本地一键启动说明
验收标准
go test ./...、go vet ./...和go test -race ./...通过docker compose up能启动完整依赖- 配置通过环境变量注入,不写入代码
- 日志包含请求、设备和错误定位所需的上下文
Phase 08 里程碑 — 生产部署
- 在 Linux 上以受控进程运行服务
- 使用 Nginx 反向代理 HTTP 与 WebSocket
- 配置域名和 HTTPS
- 实现启动、停止、日志查看和回滚流程
- 建立最小 CI/CD:检查、构建与部署
- 编写生产运行手册
验收标准
- 公网 HTTPS 与 WSS 均可访问
- 进程异常后能够恢复,重启不会破坏数据
- 部署产物可追踪版本并支持回滚
- 密钥和数据库凭据不进入仓库
- 运行手册能够让另一位开发者独立完成部署
暂不包含
- 微服务拆分
- Kubernetes
- 大数据流处理平台
- 复杂三维前端功能