thingsboard代码及原理分析

参考网址:https://thingsboard.io/docs/getting-started-guides/helloworld/

github地址:https://github.com/thingsboard/thingsboard

演示环境:https://demo.thingsboard.io/login。注册时总提示“请确认不是机器人”

 

使用技术(https://thingsboard.io/docs/reference/architecture/):

actor模型:akka

用作服务调度:zookeeper

远程调用:gRPC,thrift

持久化:Cassandra(https://cassandra.apache.org/数据存储),datastax(数据访问)

 

1:环境搭建(Mac)

Eclipse Luna。由于thingsboard使用了jdk1.8的一些技术,所以使用Eclipse Luna,因为该版本支持1.8编译。

lombok插件安装:thingsboard使用了lombok的@Getter @Setter注解。所以需要安装lombok插件.

下载https://projectlombok.org/downloads/lombok.jar(https://projectlombok.org/all-versions)

双击运行lombok.jar或者执行java -jar lombok.jar.选择需要安装lombok的eclipse,点击install/update。

成功后会在eclipse.ini的同目录下生成lombok.jar.并且在eclipse.ini中添加-javaagent:lombok.jar

重启eclipse。

 

包括模块:

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

tools:

transport(http,caop,mqtt):mqtt基于netty开发mqtt服务器。http提供基于rest的http服务。基于californium搭建coap服务。对不同的客户端设备提供不同类型的接口.同时将消息转换成不同的message,通过DefaultActorService与后端的actor交互

ui:使用nodejs开发。

 

Attributes(https://thingsboard.io/docs/user-guide/attributes/):设备属性:

Telemetry(https://thingsboard.io/docs/user-guide/telemetry/):设备数据

RPC(https://thingsboard.io/docs/user-guide/rpc/):服务器与设备间通信

 

规则引擎:规则与插件。基于actors执行。

规则包含Filters,Processors,Action

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值