thingsboard源码理解thingsboard⽬录结构
application:应⽤程序主⽬录,整体项⽬打包时也是这个Module
src/main/java/org.thingsboard.server: app主⽬录
actors: actor执⾏者⽬录
config:配置类⽬录
controller:控制器
exception:异常处理
service:服务⽬录,app打包后,server要运⾏的服务的实现都在这⾥
cluster:集服务,包括服务发现、服务实例等
script:脚本执⾏服务,主要是规则引擎的执⾏(JS)
transport:消息传输服务
rpc:远程调⽤服务
utils:⼯具类
common:公共⼯具集、⽅法集模块
dao-api:数据访问对象的服务接⼝,在这⾥做定义
data:⽤于不同数据库之间的中间数据结构
message:消息服务的实现集,包括集消息、TB的基础服务消息、系统类消息
queue:队列服务的实现集,⽤的Kafka
transport:消息传输通道服务的实现,定义公共接⼝,给客户端的transport层使⽤
coap: CoAP消息传输的实现,包括适配器和客户端
http: HTTP消息传输的实现
mqtt: MQTT消息传输的实现,包括适配器、会话、SSL⼯具等
util:⼯具集(当前仅有⼀个异步回调⼯具)
dao:数据访问对象集合,整个应⽤的DAO层,⼀般只要dao的都要data,以实现不同数据库数据结构兼容。
docker:集部署-docker容器解决⽅案,包含了部署环境和shell脚本
haproxy: HAproxy⼯具的配置⽂件存放处
tb-node:应⽤程序节点配置存放⽬录
tb-transports:消息传输服务的配置⽂件,包括coap,http,mqtt
img:应⽤图标存放处
k8s:容器编排⼯具Kubernetes的配置⽂件和⾃动化脚本
msa:微服务半⾃动构建模块,包含了⿊盒测试、js执⾏引擎等
black-box-tests:⿊盒测试⼯具
js-excutor: js执⾏引擎,基于nodejs,⽤于执⾏规则引擎中的js代码(沙盒执⾏)
tb: tb主应⽤程序配置
tb-node: tb程序节点配置
transport: docker中的消息传输服务的部署配置
web-ui: TB的Web⽤户界⾯在docker中部署的配置,⾃带http server
netty-mqtt: TB的MQTT协议的实现,包括连接、发布、订阅、遗嘱、关闭等
rule-engine: TB的规则引擎,TB没有⽤开源的Drools等⼯具,⽽是⾃⼰开发了⼀套规则引擎,主要包含3个组件和1套服务接⼝ rule-engine-api:服务接⼝的实现
rule-engine-components:规则引擎组件,包含滤波器、动作、数据、脚本、延迟加载、消息、队列、RPC实现、邮件等tools:⼯具模块,主要实现了MQTT with SSL客户端和REST客户端。可以测试⽤。
transport:三种消息传输服务启动器,服务的实现参考common/transport,mqtt协议的实现见netty-mqttnodejs工作流引擎开源
ui: TB的⽤户界⾯,主要使⽤AngularJS和react组件,单页应⽤(要替换掉,⽤Vue)。
controller:控制器,和thingsboard页⾯相关联,调⽤dao-api的服务。
dao-api(common包下):与数据库相关的服务接⼝。
dao-api实现类(dao包下):实现类位于与dao-api对应的位置。
data包(位于common包下):包含各种实体类,⽐如资产类、设备类、租户类、客户类等等。
XXXdao接⼝:和dao-api实现类位于同⼀个位置。
XXXdao接⼝实现类:dao包下的sql包下。
dao包调⽤Daoutils执⾏数据库操作,数据库sql和dao-api实现类位于同⼀个位置。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论