Skip to content

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
  • 大数据流处理平台
  • 复杂三维前端功能