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修复
升级说明
专业版升级到此版本后,请执行以下操作:
- 重新发布协议
- 重新编辑设备型号-选择协议-应用配置
专业版规则引擎预览: