小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

thingsboard微服務(wù)架構(gòu)的優(yōu)勢特點及應(yīng)用實踐

 艾瑞博達 2021-09-15

在眾多的開源物聯(lián)網(wǎng)平臺項目中,Thingsboard在體系架構(gòu)先進性、功能完整性、文檔完備性方面,應(yīng)是首屈一指。但其自身存在的一些短板,直接影響到市場應(yīng)用的普及。我們艾瑞博達團隊,跟進ThingsBoard項目已達四年之久,對其代碼和特性進行了深入研究,而且在項目應(yīng)用中,對其進行了必要的改進和擴充。在此,我們將用一組系列文章,分享我們的實踐經(jīng)驗。希望與感興趣的業(yè)界同仁展開交流與合作。

1、優(yōu)勢特點

1.1、微服務(wù)架構(gòu)

從V2.2.0開始支持微服務(wù),逐漸將傳輸協(xié)議(MQTT、HTTP、CoAP)代理服務(wù)、規(guī)則引擎服務(wù)從核心服務(wù)中分離出來,保證在高并發(fā)接入情況下的分布式部署和性能調(diào)優(yōu)。

開源物聯(lián)網(wǎng)平臺ThingsBoard(CE版)可用性探討

1.2、Actor模型

Actor模型具有高并發(fā)、高容錯的特點。

自從V2.5.2開始,為了提高執(zhí)行效率,ThingsBoard擯棄了Akka的使用,采用Java自主開發(fā)了更高性能的Actor系統(tǒng)。其Actor體系架構(gòu)如下圖所示:

開源物聯(lián)網(wǎng)平臺ThingsBoard(CE版)可用性探討

實現(xiàn)的Actor對象包括:

  • App Actor - 負責(zé)管理租戶Actors,其實例常駐內(nèi)存;

  • Tenant Actor - 負責(zé)管理租戶設(shè)備和規(guī)則鏈Actors,其實例常駐內(nèi)存;

  • Device Actor - 維護設(shè)備的狀態(tài): 活動的Sessions, 訂閱, 偵聽RPC 命令等。;

  • Rule Chain Actor - 處理接收的消息并分發(fā)給規(guī)則節(jié)點Actors,其實例常駐內(nèi)存;

  • Rule Node Actor - 處理接收的消息,并將結(jié)果反饋給規(guī)則鏈, 其實例常駐內(nèi)存。

1.3、規(guī)則引擎

Thingsboard仿效Node Red,自主開發(fā)的可視化規(guī)則引擎為消息處理提供了強大的功能支持。迄今,一些商業(yè)版的物聯(lián)網(wǎng)平臺均未見有相似的工具。

通過規(guī)則鏈的交互式配置,可以定義設(shè)備事件或數(shù)據(jù)的過濾、告警條件設(shè)置、跨系統(tǒng)聯(lián)動控制、數(shù)據(jù)路由設(shè)定等業(yè)務(wù)邏輯,只需要編寫簡單Javascript腳本。

缺省提供了常用的功能節(jié)點。遇有特殊需求時,可動態(tài)擴充。

開源物聯(lián)網(wǎng)平臺ThingsBoard(CE版)可用性探討

規(guī)則引擎主要應(yīng)用場景包括:

  • 在存儲之前,將設(shè)備上行數(shù)據(jù)進行校驗或修正;

  • 將多個設(shè)備的數(shù)據(jù)復(fù)制到資產(chǎn),以便進行聚合、關(guān)聯(lián)計算;

  • 基于預(yù)置條件,生成、刷新或清除告警信息;

  • 基于預(yù)置條件,觸發(fā)執(zhí)行動作;

  • 基于預(yù)置條件,觸發(fā)對外部系統(tǒng)的REST API調(diào)用;

  • 支持按預(yù)定制模板向指定用戶發(fā)送郵件或短信息;

  • 將數(shù)據(jù)轉(zhuǎn)發(fā)到消息隊列(MQ)中,第三方應(yīng)用可以通過消息隊列獲取到設(shè)備上行數(shù)據(jù);

  • 將數(shù)據(jù)轉(zhuǎn)發(fā)到流計算中,提供設(shè)備數(shù)據(jù)采集 + 流式計算的聯(lián)合方案;

  • 將數(shù)據(jù)轉(zhuǎn)發(fā)到時序數(shù)據(jù)庫,提供設(shè)備數(shù)據(jù)采集 + 結(jié)構(gòu)化存儲的聯(lián)合方案。

1.4、數(shù)據(jù)可視化

Thingsboard提供了豐富的數(shù)據(jù)可視化Widget,包括:地圖、儀表盤、卡片、圖表等。

開源物聯(lián)網(wǎng)平臺ThingsBoard(CE版)可用性探討

通過交互式掛接數(shù)據(jù)源,便可借助WebSocket實現(xiàn)數(shù)據(jù)展現(xiàn)的實時刷新。相比Grafana,具有更好的實時性。

1.5、多協(xié)議支持

ThingsBoard Server起初就提供了MQTT、HTTP、CoAP三種傳輸協(xié)議的服務(wù)端代理。近期發(fā)布的V3.30版本,又增加了LwM2M及SNMP協(xié)議的支持。

ThingsBoard Gateway是迄今為止,同類開源項目中接入?yún)f(xié)議支持最為豐富的網(wǎng)關(guān)。

開源物聯(lián)網(wǎng)平臺ThingsBoard(CE版)可用性探討

ThingsBoard Gateway通過MQTT協(xié)議接入ThingsBoard Server,通過各種主流協(xié)議連接器接入現(xiàn)場設(shè)備、系統(tǒng)或數(shù)據(jù)。目前支持的協(xié)議包括:MQTT、HTTP(S)、OPC-UA、ModBus、BACnet、CAN、SNMP、BLE、ODBC等。針對特殊協(xié)議,也支持定制連接器。iRay.iot網(wǎng)關(guān)支持RPC請求,以實現(xiàn)反向控制。

ThingsBoard Gateway提供基于內(nèi)存或本地文件兩種方式的數(shù)據(jù)緩存機制,用于連接中斷時,暫存數(shù)據(jù),當連接恢復(fù)時,自動將數(shù)據(jù)上傳到服務(wù)器。

ThingsBoard Server提供網(wǎng)關(guān)的遠程配置管理服務(wù),允許用戶將配置腳本遠程下發(fā)給指定網(wǎng)關(guān)。

2、不足之處

2.1、系統(tǒng)管理問題

ThingsBoard(CE)版的系統(tǒng)管理是針對遠程設(shè)備管理平臺的定位而設(shè)計的。每個租戶對應(yīng)一個設(shè)備廠商,一個廠商可以有多個客戶,每個客戶可以有多個用戶。具體的設(shè)備管理是賦權(quán)給客戶和用戶的。這種管理機制不適合企業(yè)內(nèi)部應(yīng)用場景。而且缺乏靈活的授權(quán)控制功能,許多權(quán)限都寫死在代碼之中。

2.2、時序數(shù)據(jù)存儲組織問題

ThingsBoard(CE)版迄今沒有導(dǎo)入專業(yè)的時序數(shù)據(jù)庫應(yīng)用,用戶可選擇的只有PostgreSQL和Cassandra。雖然針對PostgreSQL引入了TimeScale插件,但由于其不是按照寬表的方式組織數(shù)據(jù)記錄,TimeScale的優(yōu)勢根本發(fā)揮不出來??傊?,這兩種數(shù)據(jù)庫不具備高效的數(shù)據(jù)吞吐能力。

而且,Thingsboard(CE)版在數(shù)據(jù)入庫時,是將設(shè)備的多個遙測值拆分成不同的記錄。不斷增加了數(shù)據(jù)冗余量,而且非常不便于使用。

2.3、Asset的歧義性問題

ThingsBoard(CE)版引入了Asset(資產(chǎn))的概念,這造成了嚴重的概念混淆,因為設(shè)備也是資產(chǎn)。它的Asset應(yīng)理解為相關(guān)聯(lián)的設(shè)備集合,而且這個集合也具有單個設(shè)備的特性。

2.4、告警條件配置問題

ThingsBoard(CE)版提供了交互式復(fù)雜告警條件配置功能,由于界面邏輯設(shè)計的問題,對于多條件配置容易出現(xiàn)混亂。

2.5、前端框架選用問題

ThingsBoard(CE)版采用Angular.js作為前端開發(fā)框架,對于普遍使用Vue.js的國內(nèi)程序員,造成了嚴重的水土不服。直接影響到了其市場接受度。

2.5、重要功能閉源的問題

ThingsBoard團隊為了獲取經(jīng)濟收益,推出了閉源的專業(yè)版,某些重要的功能模塊只存在于專業(yè)版之中,包括:

  • TCP/UDP協(xié)議代理:ThingsBoard(PE)版的TCP/UDP代理能處理以TCP/UDP報文方式上傳的緊湊型數(shù)據(jù)格式;

  • 計劃任務(wù):ThingsBoard(PE)版的計劃任務(wù)(Schedule)模塊能處理周期性任務(wù)或未來單次任務(wù)的計劃編排與觸發(fā)執(zhí)行;

  • 數(shù)據(jù)分析:ThingsBoard的數(shù)據(jù)分析(Trendz)模塊是一個獨立的商業(yè)軟件,其提供的功能包括:

? 分析設(shè)備數(shù)據(jù)的圖譜、輪廓及趨勢

? 預(yù)斷系統(tǒng)行為并提前做出響應(yīng)

? 定義KPI因子,動態(tài)監(jiān)察并發(fā)現(xiàn)其影響作用

? 監(jiān)視設(shè)備停留在各種狀態(tài)上的時間

? 以不同的維度過濾、組合、聚合時序數(shù)據(jù)

? 通過可視化儀表板展現(xiàn)分析結(jié)果

3、我們所做的改進

針對ThingsBoard(CE)版存在的問題,艾瑞博達團隊利用自己的應(yīng)用框架對其進行了整合封裝,并進行了必要的功能擴充,顯著提升了其性能和可用性。

詳細參見:
https:///productinfo/885584.html。

關(guān)鍵的改進包括:

(1)應(yīng)用框架

我們基于SpringCloud和SpringBoot開發(fā)了一套企業(yè)級的多租戶應(yīng)用框架,將ThingsBoard的租戶與我們的租戶相對應(yīng)。完全接管了ThingsBoard的設(shè)備配置、組織機構(gòu)和用戶管理、角色與授權(quán)控制。

前端采用Vue.js,將ThingsBoard的復(fù)雜界面(規(guī)則引擎、儀表板等)用iFrame方式進行集成。

(2)導(dǎo)入TDEngine應(yīng)用

經(jīng)過嚴格比選,我們最終確定選用TDEngine替換Cassandra用于存儲時序數(shù)據(jù),數(shù)據(jù)記錄以測控點為單位進行組織。有效提高了數(shù)據(jù)存儲的效率。

(3)引入測控點和測控域概念

借鑒工控系統(tǒng)的理念,用測控點和測控域分別替換了ThingsBoard的設(shè)備(Device)和資產(chǎn)(Asset),同時導(dǎo)入了成套系統(tǒng)的概念,使復(fù)雜系統(tǒng)的數(shù)據(jù)組織更嚴謹和清晰。

(4)TCP/UDP支持

增加了TCP/UDP服務(wù)代理和緊湊格式數(shù)據(jù)解析與打包機制,使TCP/UDP協(xié)議支持成為可能。

(5)HMI的支持

在工業(yè)級物聯(lián)網(wǎng)應(yīng)用中,HMI是必要選項。我們通過集成開源項目Fuxa,實現(xiàn)了SVG圖形交互界面設(shè)計和運行時監(jiān)控執(zhí)行的HMI引擎。

(6)改進的告警條件配置

使用思維導(dǎo)圖的方式簡化告警條件的展示,對復(fù)雜的告警條件也能直觀快捷的配置,同時整個配置方式也更加具有邏輯性。

(7)規(guī)則節(jié)點新增與改造

新增了保存遙測數(shù)據(jù)到TDengine和類型轉(zhuǎn)換節(jié)點,改造了發(fā)送短信節(jié)點,使其支持騰訊云、阿里云短信平臺。

(8)視頻監(jiān)控支持

增加了視頻流及云臺Widget,支持在儀表板中添加實時視頻流及云臺控制功能。通過集成Kurento+OpenCV,實現(xiàn)了視頻流的實時轉(zhuǎn)碼和識別計算。

(9)與資產(chǎn)管理和三維可視化系統(tǒng)相結(jié)合

在艾瑞博達的產(chǎn)品體系之中,將企業(yè)級的資產(chǎn)管理系統(tǒng)作為基礎(chǔ)支撐,物聯(lián)網(wǎng)和三維可視化是資產(chǎn)管理的智慧化輔助。通過將資產(chǎn)項與測控點動態(tài)數(shù)據(jù)和GIS/BIM三維空間數(shù)據(jù)進行動態(tài)綁定,從而實現(xiàn)資產(chǎn)管理的動態(tài)化、可視化和智能化。

(10)微服務(wù)監(jiān)控

使用SkyWalking來進行服務(wù)的APM監(jiān)控,提供了分布式追蹤和上下文傳輸、應(yīng)用、實例、服務(wù)性能指標分析、根源分析、應(yīng)用拓撲分析、應(yīng)用和服務(wù)依賴分析、慢服務(wù)檢測功能。使用Prometheus+Grafana實現(xiàn)了服務(wù)器監(jiān)控、應(yīng)用監(jiān)控、Postgresql數(shù)據(jù)庫監(jiān)控、Reids監(jiān)控、Nacos監(jiān)控、Prometheus自身監(jiān)控功能。通過大量儀表板和告警通知,使整個平臺的性能、健康的監(jiān)控及運維直觀方便。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多