JetLinks 開源物聯網平臺
JetLinks 基於Java8,Spring Boot 2.x,WebFlux,Netty,Vert.x,Reactor等開發, 是一個開箱即用,可二次開發的企業級物聯網基礎平臺。平臺實現了物聯網相關的眾多基礎功能, 能幫助你快速建立物聯網相關業務系統。
核心特性
- 支援統一物模型管理,多種裝置,多種廠家,統一管理。
- 統一裝置連線管理,多協議適配(TCP,MQTT,UDP,CoAP,HTTP等),遮蔽網路程式設計複雜性,靈活接入不同廠家不同協議的裝置。
- 靈活的規則引擎,裝置告警,訊息通知,資料轉發.可基於SQL進行復雜的資料處理邏輯.
- 地理位置:統一管理地理位置資訊,支援區域搜尋.
- 資料視覺化: 實現拖拽配置資料圖表,裝置組態等.
技術棧
- Spring Boot 2.2.x
- Spring WebFlux 響應式Web支援
- R2DBC 響應式關係型資料庫驅動
- Project Reactor 響應式程式設計框架
- Netty,Vert.x 高效能網路程式設計框架
- ElasticSearch 全文檢索,日誌,時序資料儲存
- PostgreSQL 業務功能資料管理
- hsweb framework 4 業務功能基礎框架
架構
1.3-RELEASE
更新時間: 2020-07-10
程式碼分支: 1.3
主要最佳化
- 協議最佳化,使用資料庫儲存的協議ID作為協議的ID,此項最佳化將影響生產功能。(Pro)
- 增加多租戶功能。(Pro) 檢視文件
- 增加裝置分組。(Pro)
- 裝置告警增加防抖設定。#8
- 增加轉發裝置訊息到Kafka以及RabbitMQ。(Pro) 檢視文件
- 規則引擎重構,完全重寫底層實現。
- 新的規則引擎設計器,使用
node-red
實現。
- ReactorQL中增加查詢裝置屬性函式:
select device.properties(deviceId)
獲取裝置最新的全部屬性值。
- ReactorQL增加獲取裝置標籤函式:
select device.tags(deviceId,'tag1','tag2')
。
- ReactorQL增加裝置選擇器函式:
select * from device.selector(in_group('test-group'))
。
- 最佳化ReactorQL中分組聚合效能,多次聚合時不再駐留記憶體。
- 最佳化協議包載入邏輯,先下載到本地再載入。
- 效能最佳化,在某寫情況下,造成reactor阻塞導致redis超時。
- 其他程式碼細節最佳化。
- 升級
spring-boot
到2.2.8.RELEASE
。
- 升級
netty
到4.1.50.Final
。
- 升級
hsweb-framework
到4.0.4
。
主要BUG修復
- 匯入標籤時無法識別標籤型別。
- 修復首次匯入裝置,並且含有地理位置標籤時,地理位置資料不正確問題。
- 修改主鍵預設列長度,解決id可能過長問題。
- 修復tcp使用指令碼方式進行粘拆包使,如果
fixed(0)
可能導致粘拆包失效。
- 前端一堆bug修復
升級說明
專業版升級到此版本後,請執行以下操作:
- 重新發布協議
- 重新編輯裝置型號-選擇協議-應用配置
專業版規則引擎預覽: