Skip to content

系统架构设计

1. 系统逻辑架构

YunStack-IoT 采用经典的分层架构设计,确保各层职责单一、边界清晰。

各层职责说明

  1. 应用层
    • 小程序:用户侧的主要入口,提供设备配网、绑定、列表展示、实时状态查看、远程控制等功能。
    • Web 后台:管理员入口,负责设备录入、固件版本管理、用户权限管理、系统日志查看。
  2. 服务层 (NestJS)
    • 承载所有业务逻辑,包括用户鉴权、设备鉴权、指令路由、数据清洗与存储。
    • 作为 MQTT 客户端 订阅业务 Topic,处理高频遥测数据和指令响应。
    • 在线状态由属性上报消息驱动(Redis TTL 120s),不依赖 EMQX Webhook。
  3. 接入层 (EMQX)
    • 负责维持海量设备的长连接。
    • 处理 MQTT 协议的 Pub/Sub,实现设备与服务端的消息解耦。
    • 设备认证:直连 PostgreSQL 查询 devices 表,不依赖后端服务。
  4. 数据层
    • PostgreSQL:存储"关系"(用户、设备、组织、固件)以及设备认证凭证。
    • InfluxDB:存储"流"(传感器历史数据、继电器状态变化历史)。
    • Redis:存储"瞬态"(设备在线状态、影子热缓存、指令状态追踪)。

2. 部署架构 (逻辑)

EMQX 直连 PostgreSQL 做设备认证,与 NestJS 后端无 HTTP 回调依赖。具体的部署说明将在 部署指南 中详细阐述。