栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

ThingsBoard 小结

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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占用存储空间大量的使用一行完成所有逻辑,不便于他人维护与二次开发,可能框架本就这方面考虑比较少使用gRPCdao层大量对 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 实体及数据存储研究

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/771333.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号