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