参考网址: github 地址: 演示环境:。
文档:
并发模型: actor 模型 akka
集群协作:zookeeper
支持协议:mqtt、coap、http
持久化: postgresql、cassandra,datastax(数据访问)
使用 idea 工具,jdk1.8 环境
lombok 插件安装:thingsboard 使用了 lombok 的 注解。所以需要安装 lombok 插件.
application:应用相关
common(data,message,transport):data 用于与不同 db 之间的中间数据结构。message 定义不同的消息类型。transport 定义一个公共的接口,供与客户端的 transport 层使用
dao: dao 抽象了对不同数据库的统一接口。
dao 的接口数据一般都 data,根据不同的数据库在不同的接口中转换为对应的实体类与数据库交互.通过y(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
使用 nodejs 开发,需要安装 yarn
租户 tenant:可以将 thingsboard 租户视为独立的业务实体:拥有或生产设备的个人或组织。
部件库
客户管理:租户和客户的关系,每个客户有对应的资产和设备
实体视图:
类似于 sql 数据库视图,它限制了基础表暴露给外部世界的程度,tb ev 限制了设备或资产遥测和属性暴露给客户的程度。 作为租户管理员,您可以为每个设备或资产创建多个 ev,并将其分配给不同的客户。
use case:
与多个客户同时共享特定设备或资产数据。 由于 tb 安全模型的限制,以前的 ev 功能无法实现。
允许特定客户用户查看收集的数据(例如传感器读数),但隐藏调试信息,如电池电量,系统错误等。
设备即服务(daas)模型,其中设备在不同时间段收集的数据属于不同的客户。
仪表板库:可以定制 dashboard
attributes:设备属性,文档:
telemetry:设备数据,比如温度、湿度等,文档:
rpc:服务器与设备间通信,文档:
thingsboard 的功能还是相当全面的,文档资料比较全,澳门人威尼斯3966官网上也有应用场景的方案。自定义的规则引擎功能很强大,页面虽然丑了点,好在可以优化,各种 widget 挺全,可以直接拿来作为 iot 数据收集和展现使用,还是值得好好研究一下的。如果能结合数据挖掘应该能做出很牛 b 的方案。
作者:时间道
链接: .com/p/61b6b6531f3f
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。