集群部署
集群部署架构图
1. 整体架构
ThingsPanel采用分层架构设计,从上到下分为负载均衡层、消息代理层、应用层、缓存层和数据库层。这种分层架构具有高可用性、可扩展性和可维护性的特点。
2. 各层详细说明
2.1 接入层
- 
设备接入
- 支持多种协议:MQTT、HTTP、CoAP
 - 支持海量设备并发接入
 - 支持设备认证和安全机制
 
 - 
用户访问
- 支持Web界面访问
 - 提供标准REST API接口
 - 支持多种客户端应用接入
 
 
2.2 负载均衡层
- 组件:Nginx/HAProxy集群
 - 功能:
- 实现设备连接的负载均衡
 - 提供高可用性保证
 - 支持横向扩展
 - 流量控制和安全防护
 
 
2.3 消息代理层
- 
MQTT代理节点(VerneMQ)
- 支持集群部署
 - 节点间数据同步
 - 设备消息的实时转发
 - 支持QoS服务质量保证
 
 - 
Webhook服务
- 与MQTT代理紧密集成
 - 提供消息预处理能力
 - 支持自定义消息处理逻辑
 
 
2.4 ThingsPanel应用层
- 
后端API服务
- 设备管理
 - 用户权限管理
 - 业务规则引擎
 - 告警管理
 - 数据可视化
 
 - 
时序数据库服务
- 设备数据高效存储
 - 数据清洗和转换
 - 数据分析处理
 - 历史数据管理
 
 
2.5 缓存层
- Redis集群
- 采用主从架构
 - 提供高速数据缓存
 - 支持会话管理
 - 提升系统响应速度
 
 
2.6 数据库层
- 
时序数据库(TDengine)
- 针对物联网数据特点优化
 - 高性能数据存储和查询
 - 支持数据压缩
 - 提供数据保留策略
 
 - 
元数据库(PostgreSQL/TimescaleDB)
- 存储业务元数据
 - 设备配置信息
 - 用户及权限数据
 - 支持复杂业务查询
 
 
3. 系统特点
3.1 高可用性
- 各层组件支持集群部署
 - 无单点故障设计
 - 服务自动容错和恢复
 - 数据多副本存储
 
3.2 可扩展性
- 支持水平扩展
 - 各层可独立扩容
 - 灵活的节点添加/删除
 - 动态负载均衡
 
3.3 安全性
- 设备接入安全认证
 - 数据传输加密
 - 用户访问权限控制
 - 多层安全防护
 
3.4 可维护性
- 组件解耦设计
 - 便于问题定位
 - 支持在线升级
 - 完善的监控告警