在众多的开源物联网平台项目中,Thingsboard在体系架构先进性、功能完整性、文档完备性方面,应是首屈一指。但其自身存在的一些短板,直接影响到市场应用的普及。我们艾瑞博达团队,跟进ThingsBoard项目已达四年之久,对其代码和特性进行了深入研究,而且在项目应用中,对其进行了必要的改进和扩充。在此,我们将用一组系列文章,分享我们的实践经验。希望与感兴趣的业界同仁展开交流与合作。
1、优势特点
1.1、微服务架构
从V2.2.0开始支持微服务,逐渐将传输协议(MQTT、HTTP、CoAP)代理服务、规则引擎服务从核心服务中分离出来,保证在高并发接入情况下的分布式部署和性能调优。
1.2、Actor模型
Actor模型具有高并发、高容错的特点。
自从V2.5.2开始,为了提高执行效率,ThingsBoard摈弃了Akka的使用,采用Java自主开发了更高性能的Actor系统。其Actor体系架构如下图所示:
实现的Actor对象包括:
- App Actor - 负责管理租户Actors,其实例常驻内存;
- Tenant Actor - 负责管理租户设备和规则链Actors,其实例常驻内存;
- Device Actor - 维护设备的状态: 活动的Sessions, 订阅, 侦听RPC 命令等。;
- Rule Chain Actor - 处理接收的消息并分发给规则节点Actors,其实例常驻内存;
- Rule Node Actor - 处理接收的消息,并将结果反馈给规则链, 其实例常驻内存。
1.3、规则引擎
Thin