集群部署
集群部署架构图
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 可维护性
- 组件解耦设计
- 便于问题定位
- 支持在线升级
- 完善的监控告警
4. 部署建议
4.1 小型部署(设备数量<1万
)
- 最小化组件部署
- 单节点部署即可满足需求
- 建议配置:
- 2核4G以上服务器
- 100GB以上存储空间
4.2 中型部署(设备数量1万-10万)
- 建议双节点集群部署
- 关键组件冗余备份
- 建议配置:
- 4核8G以上服务器
- 500GB以上存储空间
4.3 大型部署(设备数量>10万
)
- 全组件集群部署
- 跨机房容灾备份
- 建议配置:
- 8核16G以上服务器
- 1TB以上存储空间
- 根据实际需求扩展节点
5. 扩展性建议
- 预留50%以上的性能余量
- 分阶段扩容规划
- 关注数据存储容量
- 定期进行性能评估