JetLinks 基于Java8,Spring Boot 2.x,WebFlux,Netty,Vert.x,Reactor等开发, 是一个开箱即用,可二次开发的企业级物联网基础平台。平台实现了物联网相关的众多基础功能, 能帮助你快速建立物联网相关业务系统。
#核心特性
完全开源(社区版免费),基于事件驱动,拓展性强.
支持统一物模型管理,多种设备,多种厂家,多种报文,统一管理。
统一设备连接管理,多协议适配(TCP,MQTT,UDP,CoAP,HTTP等),屏蔽网络编程复杂性,灵活接入不同厂家不同协议的设备。
灵活的规则引擎,设备告警,消息通知,数据转发,场景联动.
强大的ReactorQL引擎,使用SQL来处理实时数据.可拓展自定义函数.
地理位置:统一管理地理位置信息,支持区域搜索.
灵活的非侵入多租户数据权限控制.
在线演示地址: http://demo.jetlinks.cn (opens new window)用户名:test
密码: tes英文注册版+包更新3456
.
#技术栈
- Spring Boot 2.3.x(opens new window)
- Spring WebFlux (opens new window)响应式Web支持
- R2DBC (opens new window)响应式关系型数据库驱动
- Project Reactor (opens new window)响应式编程框架
- Netty (opens new window),Vert.x (opens new window)高性能网络编程框架
- ElasticSearch (opens new window)全文检索,日志,时序数据存储
- Redis (opens new window)Redis,设备配置,状态管理,缓存.
- PostgreSQL (opens new window)业务功能数据管理
- hsweb framework 4 (opens new window)业务功能基础框架
#架构
#设备接入流程
1.8 版本更新记录
- 固件相关消息增加
size
属性 - 网络组件在集群下可以单独指定节点的配置了(Pro)
- 修复邮件通知无法发送base64图片问题
- 优化设备详情配置查看,通过
device.setConfig
设置的配置也可以在设备详情中查看到. - 增加OneNet和CTWing接入,可将设备同步到对应到平台中.以及从对应平台订阅数据(Pro可选模块)
- 设备实例接口增加批量发送设备指令
/device/instance/messages
,可在消息体中指定deviceId
或者通过where
条件指定要发送到的设备.(Pro) - 优化设备最新消息存储,同一个产品的数据使用串行更新,防止死锁,并且丢弃来不及更新的数据.(Pro)
- 修复es索引中存在多个mapping时无法解析的问题
- 修复分组聚合查询属性时,如果返回过多分组时可能导致无法返回结果的问题.
- 支持将
object
和array
类型的属性使用json字符串
来进行存储,减少es的压力. - 修复无法转发设备消息到
rabbitMQ
和kafka
. - 增加默认物模型,在协议包里可配置默认物模型,创建产品时,自动添加到物模型配置中.
- 发送功能调用指令时,增加参数校验和参数类型转换.(可通过
headers.force
跳过校验) - 优化设备分类数据初始化,默认使用
-
进行id分隔(使用|
可能导致400错误.) - 通过jvm参数
-Djetlinks.eventbus.payload.pool.enabled=true
开启事件总线对象池,提升性能.
1.7 版本更新记录
- 优化设备配置定义,可以指定配置作用域(单独设置产品的配置或者设备的配置),见
DefaultConfigMetadata.add
方法. - 设备标签查询(
id$dev-tag
)支持表达式:tag1=value1 and tag2=value2
(没有sql注入,放心使用). - 增加支持数据库维护产品分类.
- 优化拉取固件升级逻辑,使用
headers.force
标记是否强制拉取固件,使用headers.latest
标记是否拉取最新的固件信息. (Pro) - 优化设备消息转发逻辑,在
headers
中增加members
,标记此设备所属的用户id.(需要重新激活设备) (Pro) - 优化告警推送逻辑,解决租户添加了告警通知时,无法订阅新添加的设备告警问题.(Pro)
- 增加
Headers.mergeLatest
消息头,设备属性相关消息设置此头,将合并旧的属性数据到消息中.(此操作会降低系统吞吐量)(Pro) - 修复集群下,修改物模型后其他节点不会生效问题。
- 优化设备指令下发,指令消息ID和设备id进行绑定防止重复。
- 事件总线集群通信增加RSocket支持以提升性能,通过配置
jetlinks.event-bus.roskcet.enabled
开启.(Pro) - ReactorQL增加
_window_until
和_window_until_change
函数.(Pro) - 优化事件总线性能,在使用
TopicPayload
后需要手动调用release()
释放资源. - 优化
设备数据行式存储策略
:取消存储propertyName
,formatValue
字段,influxdb
下只存储numberValue
,timeValue
,value
. - 优化物模型拓展信息配置,可在协议包中
support.setExpandsConfigMetadata
来指定配置(需要升级jetlinks-core 1.1.4) - 增加内存使用检查,当内存使用剩余低于15%时,丢弃请求防止内存溢出导致系统崩溃.可通过启动参数
-Dmemory.waterline=0.15
进行配置.(Pro) - 优化
elasticsearch
和influxdb
写入策略,丢弃无法写入的Buffer防止内存溢出.(Pro) - 优化设备网关消息处理逻辑、优化子设备上线处理逻辑、优化自注册逻辑、离线消息无论设备是否已经离线,事件总线都将会收到消息.
- 优化
influxdb
查询条件的类型转换,修复如果使用数字作为设备id,无法查询到数据.(Pro) - 设备数据转发到机构topic中
/org/device/**
,可通过headers.orgId
获取当前设备机构ID。(需要再次激活设备). - 可通过
DeviceMessage.addHeader("ignoreLog",true)
指定不记录此消息日志.
下载地址:
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。