Files
aiot-platform-cloud/docs/technical-overview/02-系统架构.md

121 lines
5.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Part 2: 系统架构
> **文档定位**:从宏观视角阐述 AIoT 平台的顶层设计,涵盖逻辑架构、业务架构、技术架构及数据架构,为系统建设提供全景蓝图。
## 2.1 总体架构蓝图 (Logical Architecture)
本平台遵循标准的物联网四层架构模型,自下而上构建“感知-连接-平台-应用”的完整生态闭环。
```mermaid
graph TD
subgraph AppLayer [应用层 Application]
A1[智慧物业<br>Smart Property]
A2[智慧园区<br>Smart Campus]
A3[数据大屏<br>Dashboard]
A4[移动端<br>Mobile App]
end
subgraph PlatformLayer [平台层 Platform]
P1[<b>业务中台</b><br>用户/权限/流程/消息]
P2[<b>IoT中台</b><br>设备/规则/告警/指令]
P3[<b>数据中台</b><br>时序存储/数据清洗/分析]
end
subgraph NetworkLayer [网络层 Network]
N1[IoT Gateway<br>协议适配]
N2[API Gateway<br>流量分发]
N3[Edge Node<br>边缘计算节点]
end
subgraph PerceptionLayer [感知层 Perception]
S1[传感器<br>Sensors]
S2[智能设备<br>Smart Devices]
S3[控制器<br>Controllers]
S4[工控机<br>IPC]
end
PerceptionLayer -->|MQTT/TCP/HTTP| NetworkLayer
NetworkLayer -->|RPC/MQ| PlatformLayer
PlatformLayer -->|REST/WS| AppLayer
```
### 核心分层定义
1. **感知层 (Perception)**:物理世界的数字触角,包含各类环境传感器、视频监控、门禁闸机及边缘网关。
2. **网络层 (Network)**连接物理与数字的桥梁负责多协议TCP/MQTT/HTTP的统一接入与边缘协同。
3. **平台层 (Platform)**:系统的核心大脑,提供设备管理、规则引擎、业务逻辑编排及数据治理能力。
4. **应用层 (Application)**:面向最终用户的业务场景,如安保巡更、保洁排班、设施维保等 SaaS 应用。
---
## 2.2 业务架构 (Business Architecture)
平台采用 **“以台促用”** 的建设思路,概括为 **“一个底座两大中心N个应用”**。
### 2.2.1 两大核心中心
1. **IoT 连接中心 (IoT Center)**
* **核心能力**:解决设备“连得入、存得下、管得住”的问题。
* **功能模块**物模型定义、设备生命周期管理、规则引擎、OTA 升级。
2. **业务运营中心 (Business Center / Ops)**
* **核心能力**:解决业务“流程化、标准化、智能化”的问题。
* **功能模块**
* **保洁条线**:智能排班、耗材管理、公厕异味监测。
* **安保条线**:电子巡更、应急报警、视频 AI 联动。
* **工程条线**:设备台账、预防性维保、工单流转。
---
## 2.3 技术架构 (Technical Architecture)
基于 **Spring Cloud Alibaba** 微服务体系,采用存算分离与读写分离设计,确保系统的高可用与高扩展。
### 2.3.1 微服务分层实现
| 分层 | 服务组件 (Service) | 关键技术 | 职责说明 |
| :--- | :--- | :--- | :--- |
| **网关层** | `viewsh-gateway` | Spring Cloud Gateway | HTTP 流量入口,鉴权、限流、路由。 |
| | `viewsh-module-iot-gateway` | Netty / Vert.x | **以及高性能设备接入**,支持 TCP/MQTT 长连接。 |
| **业务层** | `viewsh-module-system` | Spring Boot | 统一认证 (OAuth2)、RBAC 权限、多租户管理。 |
| | `viewsh-module-ops` | Spring Boot + Flowable | 业务逻辑处理,集成工作流引擎处理复杂工单。 |
| | `viewsh-module-iot` | Spring Boot | 设备元数据管理,指令下发,规则计算。 |
| **支撑层** | `viewsh-module-infra` | MinIO / XXL-Job | 文件存储、定时任务、通知服务 (SMS/Mail)。 |
### 2.3.2 关键技术决策
* **通信框架**:采用 **Netty/Vert.x** 构建高性能物联网关,解决百万级设备并发连接问题。
* **异步解耦**:引入 **RocketMQ**,将设备上报数据与业务处理逻辑解耦,实现削峰填谷。
* **分布式事务**:使用 **Seata** 保证跨服务的业务数据一致性。
---
## 2.4 数据架构 (Data Architecture)
数据是 AIoT 平台的资产核心,采用 **“冷热分离 + 时序优化”** 的混合存储策略。
### 2.4.1 数据流向图
```text
[设备 Device]
↓ (Telemetry Data)
[IoT Gateway]
↓ (MQ Message)
[数据清洗/规则引擎]
├─(实时热数据/告警)─> [Redis] ──> [实时大屏/Web推送]
├─(设备历史日志)───> [TDengine] (时序数据库)
└─(业务状态/元数据)─> [MySQL] (关系型数据库)
```
### 2.4.2 存储选型
1. **时序数据 (Time-Series)**:使用 **TDengine** 存储设备上报的高频遥测数据(如温度、电压),利用其超级表特性实现高性能写入与聚合查询。
2. **业务数据 (Relational)**:使用 **MySQL** (或国产达梦/人大金仓) 存储用户、设备档案、工单记录等强一致性业务数据。
3. **缓存数据 (Cache)**:使用 **Redis** 存储设备在线状态、Token 令牌及高频配置,保障低延迟访问。
---
## 2.5 部署架构
支持纯容器化 (Docker-Compose) 与云原生 (K8s) 两种部署模式,具备良好的云中立性。
* **接入层**:支持多节点负载均衡 (SLB -> Nginx -> Gateways)。
* **服务层**:无状态节点,支持 HPA 弹性伸缩。
* **数据层**:支持主从/集群部署,保障数据可靠性。