ThingsBoard 小结

对ThingsBoard的初步了解

thingsboard是一款在物联网领域非常流行的高性能物联网设备平台开源框架

框架中的技术选型

同时支持微服务部署、单体部署
内部使用gRPC、protocol buffers
protocol buffers 序列化后数据量是json的1/10、xml的1/20,速度提升5~100倍
netty实现mqtt服务端
自研规则引擎

细节

单体内存缓存 Caffine 与 redis 可选择配置
遥测接口大量使用异步非阻塞方式 spring DeferredResult、 guava ListenableFuture 将异步做到了jdbc前,jdbc的bio模式成为不完美点

反应式编程扩展
spring data r2dbc正式版已经来到1.3了,它就是一个异步非阻塞响应式数据库连接池,还是一个orm框架,它还可以响应式的事务,响应式的服务降级熔断隔离

在我目前看来是缺陷的一些点
  • 为什么使用uuid作为主键?虽然项目大量基于created_time排序分页,但uuid占用存储空间
  • 大量的使用一行完成所有逻辑,不便于他人维护与二次开发,可能框架本就这方面考虑比较少
  • 使用gRPC
  • dao层大量对 textSearch 字段使用 lower() 函数,且全模糊like,不建索引就可以肆无忌惮么,有点看不懂这个操作
  • Controller层所有service的引用都集中在BaseController父类

二次开发小结

增加自己自定义的实体

步骤 文件or文件夹
增加新的实体类型 EntityType.java
创建实体ID类 org/thingsboard/server/common/data/id/
增加实体最大数量配置 DefaultTenantProfileConfiguration.java
Resource 增加enum

然后可从controller开始写,会更具有目的性,更快
controller service dao repostory
增加orm实体类model org/thingsboard/server/dao/model/sql
增加orm实体字段映射常量 ModelConstants.java

tenant_profile 租户配置信息表
tenant 租户表
customer 用户组(客户)
tb_user 用户表、user_credentials 用户凭据

device_profile 设备模型表
device 设备表、device_credentials 设备凭证
asset 资产表(关联其它设备和资产的抽象实体,如区域、建筑物、单位等)

alarm 警报表 (由 originator_id 和 originator_type 关联实体)
audit_log 审计日志(操作日志)
event 事件(设备、资产等)

ts_kv_dictionary 遥测数据属性字典
ts_kv 遥测数据历史值 时序数据
ts_kv_latest 遥测数据 最新值

component_descriptor 规则链节点部件
rule_chain 规则链
rule_node 规则链节点
rule_node_state 规则链节点状态

attribute_kv 实体属性的key value (如设备属性、资产属性,由 entity_type 和 entity_id 字段关联)

relation 实体间的有向连接关系 (由 from_id, from_type 字段指定 from 端的实体,to_id, to_type 字段指定 to 端的实体)

widget_type、widgets_bundle 可视化部件包
dashboard 物可视(可视化面板)
entity_view 物视图

参考文档:

入门 | ThingsBoard中文网

thingsboard 实体及数据存储研究

接触Thingsboard用得到!!! 目录 1  参考资料 5  文档目的 6 第一章 项目框架整理说明 7 1.1 项目框架说明 7 1.1.1 package包功能描述 8 1.1.2 thingsboard开发主要涉及到的包 10 1.1.3 thingsboard代码类及接口说明 10 第二章 thingsboard涉及到的流程图 12 2.1 物联网网关架构 12 2.2 ThingsBoard微服务架构 13 2.3 Thingsboard产品架构 13 2.4 Thingsboard规则引擎 14 2.5 ThingsBoard Architecture 15 第三章 项目框架涉及到的第三方包或插件 17 3.1 Thingsboard 包 17 第四章 ThingsBoard设备连接协议 23 4.1 订阅消息传递协议(MQTT) 23 4.2 请求响应模式(CoAP) 23 4.3 请求响应模式(HTTP ) 24 第五章 ThingsBoard打包 25 5.1 后端打包 25 5.2 前端打包方UI 25 第六章 ThingsBoard框架日志 26 第七章 ThingsBoard数据库 目录 目录 1  参考资料 5  文档目的 6 第一章 项目框架整理说明 7 第二章 thingsboard涉及到的流程图 12 第三章 项目框架涉及到的第三方包或插件 17 第四章 ThingsBoard设备连接协议 23 第五章 ThingsBoard打包 25 第六章 ThingsBoard框架日志 26 第七章 ThingsBoard数据库 27 第八章 官网主要文档目录 28 第九章 前端技术概述 29 第十章 关于Thingsboard开发环境部署 30 第十一章 数据库表结构 32 错误!未定义书签。 7.1 关系数据库(使用了2个数据库) 27 7.2 非关系数据库(redis) 27 第八章 官网主要文档目录 28 第九章 前端技术概述 29 9.1 前端包括哪些技术点 29 9.2 前端技术描述 29 第十章 关于Thingsboard开发环境部署 30 第十一章 数据库表结构 32
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值