概述
本文提供ThingsBoard Edge架构的高层概览,包括架构图、组件间数据流说明及核心架构选型解释。
ThingsBoard Edge各组件在单个Java虚拟机(JVM)内启动,并共享操作系统资源。 在资源受限环境下,仅需256或512 MB内存即可部署运行ThingsBoard Edge进程。
ThingsBoard Edge具备以下特性:
- 可扩展:将计算与数据分析分散到数千个边缘节点。
- 稳定高效:单个Edge可处理最多约1000台设备,具体取决于使用场景与硬件条件。
- 可定制:通过可定制部件和规则引擎节点轻松扩展功能。
- 持久可靠:Edge将全部消息和事件写入持久化层;必要时可将指定消息传输至云端。
架构图
下图展示Edge的核心组件及其提供的接口。
Cloud Manager服务
ThingsBoard Edge 通过gRPC协议与云端(ThingsBoard PE)通信,由 Cloud Manager 管理该连接。
一方面,Cloud Manager检查云端队列中的新事件,一旦就绪即推送至云端。
另一方面,它处理来自 ThingsBoard PE 服务器的所有事件并做相应处理。
Cloud Manager使用自动生成的 Routing key 与 Secret 配对连接云端实例。
为增强安全,可在 SSL/TLS 之上建立 gRPC 连接。详见 gRPC over SSL/TLS 指南。
传输组件
ThingsBoard Edge提供基于MQTT、HTTP和CoAP的API,供设备应用/固件使用。 每种协议API由ThingsBoard Edge”传输层”中的独立组件提供。
ThingsBoard Edge支持ThingsBoard CE/PE标准设备通信协议:
各传输组件将数据推送至规则引擎,部分还可调用核心服务向数据库发起设备凭证校验等请求。
规则引擎组件
ThingsBoard Edge规则引擎负责按用户定义的逻辑与流程处理传入消息。 规则引擎使用Actor系统为主要实体(如规则链和规则节点)创建actor。 ThingsBoard Edge规则引擎架构与服务器端规则引擎一致,但配置略有不同——Edge使用规则链模板替代标准规则链。 规则链模板详情请参阅文档页面。
核心服务
ThingsBoard Edge Core处理REST API调用和WebSocket订阅。 此外,它还维护活跃设备会话的最新信息,并监控设备连接状态。 ThingsBoard Edge Core使用Actor系统为租户、设备等关键实体实现actor。
ThingsBoard Edge Web UI
ThingsBoard Edge内置基于Express.js框架的轻量组件,用于托管静态Web UI。 这些组件完全无状态,所需配置极少。 静态Web UI包含应用包;加载后,应用即开始使用ThingsBoard Edge Core提供的REST API和WebSockets API。
外部系统
ThingsBoard Edge的消息可通过规则引擎推送至外部系统。 可将数据发送到外部系统进行处理,再将处理结果回传至ThingsBoard Edge进行可视化。 更多细节请参阅规则引擎文档与指南。