thingsboard源码结构解析
以下是針對 v3.2.1版本
application: 應用程序主目錄,整體項目打包時也是這個Module
????src/main/java/org.thingsboard.server: 項目主目錄
????????actors: actor執行者目錄
????????config: 配置類目錄
????????controller: 控制器,網頁端等api控制器
????????exception: 異常處理
????????service: 服務目錄,項目打包后,server要運行的服務的實現都在這里
?????????? security: 安全相關服務
????????????script: 腳本執行服務,主要是規則引擎的執行(JS)
????????????transport: 消息傳輸服務
????????????rpc: 遠程調用服務
????????utils: 工具類
common: 公共工具集、方法集模塊
??? actor:actor反應相關
????dao-api: 數據訪問對象的服務接口,在這里做定義
????data: 用于不同數據庫之間的中間數據結構
????message: 消息服務的實現集,包括集群消息、TB的基礎服務消息、系統類消息
????queue: 隊列服務的實現集,用的Kafka
????transport: 消息傳輸通道服務的實現,定義公共接口,給客戶端的transport層使用
????????coap: CoAP消息傳輸Handler,包括適配器和客戶端
????????http: HTTP消息傳輸Handler
????????mqtt: MQTT消息傳輸Handler,包括適配器、會話、SSL工具等
??????? transport-api : 具體的實現
????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主應用程序docker配置
????tb-node: tb程序節點配置,基于docker
????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-mqtt
ui: TB的用戶界面,主要使用AngularJS和react組件,單頁應用(要替換掉,用Vue)
總結
以上是生活随笔為你收集整理的thingsboard源码结构解析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux idea 启动报错Start
- 下一篇: thingsboard官网单机并发量