赞
踩
github地址:https://github.com/thingsboard/thingsboard
演示环境:https://demo.thingsboard.io/login。
总架构
文档:https://thingsboard.io/docs/reference/architecture/
并发模型: Actor模型akka
集群协作:zookeeper
支持协议:mqtt、coap、http
持久化: Postgresql、Cassandra,datastax(数据访问)
环境搭建(Mac)
使用 idea 工具,jdk1.8+环境
lombok插件安装:thingsboard使用了lombok的@Getter @Setter注解。所以需要安装lombok插件.
包括模块:
application:应用相关
common(data,message,transport):data用于与不同db之间的中间数据结构。message定义不同的消息类型。transport定义一个公共的接口,供与客户端的transport层使用
dao: dao抽象了对不同数据库的统一接口。
dao的接口数据一般都data,根据不同的数据库在不同的接口中转换为对应的实体类与数据库交互.通过@ConditionalOnProperty(prefix = “database”, value = “type”, havingValue = “cassandra”)动态注入不同的数据库
tools:
extensions(extension-kafka,extension-mqtt,extension-rabbitmq,extension-rest-api-call):分别调用不同协议的后端服务
extensions-api:定义aciton,filter,plugin,processor及其他基本对象
extensions-core:实现一些公用aciton,filter,plugin,processor
transport(http,caop,mqtt): mqtt基于netty开发mqtt服务器。
http提供基于rest的http服务。基于californium搭建coap服务。对不同的客户端设备提供不同类型的接口.同时将消息转换成不同的message,通过DefaultActorService与后端的actor交互
强大的规则引擎
规则与插件,基于actors执行,规则包含Filters,Processors,Action
前端ui
使用nodejs开发,需要安装 yarn
相关概念
租户tenant:可以将ThingsBoard租户视为独立的业务实体:拥有或生产设备的个人或组织。
部件库
客户管理:租户和客户的关系,每个客户有对应的资产和设备
实体视图:
类似于SQL数据库视图,它限制了基础表暴露给外部世界的程度,TB EV限制了设备或资产遥测和属性暴露给客户的程度。 作为租户管理员,您可以为每个设备或资产创建多个EV,并将其分配给不同的客户。
use case:
与多个客户同时共享特定设备或资产数据。 由于TB安全模型的限制,以前的EV功能无法实现。
允许特定客户用户查看收集的数据(例如传感器读数),但隐藏调试信息,如电池电量,系统错误等。
设备即服务(DaaS)模型,其中设备在不同时间段收集的数据属于不同的客户。
仪表板库:可以定制 dashboard
Attributes:设备属性,文档:https://thingsboard.io/docs/user-guide/attributes/
Telemetry:设备数据,比如温度、湿度等,文档:https://thingsboard.io/docs/user-guide/telemetry/
RPC:服务器与设备间通信,文档:https://thingsboard.io/docs/user-guide/rpc/
作者:时间道
链接:https://www.jianshu .com/p/61b6b6531f3f
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
基于ThingsBoard二次开发的物联网平台推荐:ThingsKit物联网平台,开箱即用的物联网低代码平台,提供N+1+N的产品服务体系,帮助企业快速搭建稳定可靠的物联网系统平台,为企业节省大量时间及人力成本。www.thingskit.com
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。