ThingsKit物联网平台的架构设计遵循了可扩展性、高可用性、安全性、可定制性、开放性和可靠性等原则,以确保平台的性能、可靠性和安全性。平台采用了分布式架构,支持横向扩展,能够处理大规模的设备连接和数据采集。ThingsKit的核心服务包括消息传输微服务、JavaScript执行器微服务和核心微服务,它们共同构成了平台的基础。
消息传输微服务提供了基于MQTT、HTTP和CoAP的API,用于设备应用程序/固件的数据传输。每个协议API由单独的服务器组件提供,并通过Apache Kafka与主要的ThingsKit节点微服务进行通信。JavaScript执行器微服务则允许用户定义自定义JavaScript函数来解析、过滤和转换消息,这些函数在隔离的上下文中执行,以避免影响主处理。
核心微服务是ThingsKit的核心,用Java编写,负责处理REST API调用、实体遥测和属性更改的WebSocket订阅、通过规则引擎处理消息以及监控设备连接状态。ThingsKit节点使用Actor System来实现租户、设备、规则链和规则节点Actor,并且可以加入集群,每个节点都是平等的。服务发现是通过Zookeeper完成的,而消息路由则使用基于实体ID的一致哈希算法。
ThingsKit还集成了第三方服务,如Apache Kafka用于消息队列和流处理,Redis作为内存中数据结构存储用于缓存,以及Zookeeper用于分布式协调。这些服务共同支持ThingsKit的高可用性和数据安全性。
ThingsKit物联网平台的产品设备操作指南详细介绍了如何在平台上进行设备管理,包括新增设备、编辑设备信息、查看设备详情、分配客户、设备公开和设备导入等功能。