JetLinks 开源物联网平台
JetLinks 基于Java8,Spring Boot 2.x,WebFlux,Netty,Vert.x,Reactor等开发, 是一个开箱即用,可二次开发的企业级物联网基础平台。平台实现了物联网相关的众多基础功能, 能帮助你快速建立物联网相关业务系统。
核心特性
完全开源(社区版免费),基于事件驱动,拓展性强.
支持统一物模型管理,多种设备,多种厂家,多种报文,统一管理。
统一设备连接管理,多协议适配(TCP,MQTT,UDP,CoAP,HTTP等),屏蔽网络编程复杂性,灵活接入不同厂家不同协议的设备。
灵活的规则引擎,设备告警,消息通知,数据转发,场景联动.
强大的ReactorQL引擎,使用SQL来处理实时数据.可拓展自定义函数.
地理位置:统一管理地理位置信息,支持区域搜索.
灵活的非侵入多租户数据权限控制.
在线演示地址: http://demo.jetlinks.cn 用户名:test 密码: test123456.
技术栈
- Spring Boot 2.3.x
- Spring WebFlux 响应式Web支持
- R2DBC 响应式关系型数据库驱动
- Project Reactor 响应式编程框架
- Netty ,Vert.x 高性能网络编程框架
- ElasticSearch 全文检索,日志,时序数据存储
- Redis,设备配置,状态管理,缓存.
- PostgreSQL 业务功能数据管理
- hsweb framework 4 业务功能基础框架
架构
设备接入流程
1.9-RELEASE
- 增加设备独立物模型支持,可给单独的设备配置物模型.
- 基本实现GB28181国标视频设备接入,支持直播,云台控制,级联操作.(选配模块)
- RabbitMQ增加routeKey配置,可在配置文件中指定device.message.writer.rabbitmq.consumer-route-key和device.message.writer.rabbitmq.producer-route-key.(Pro)
- 当设置了device.message.writer.rabbitmq.consumer=false时,不创建MQ消费者.(Pro)
- 设备支持独立物模型,可单独配置设备的物模型.
- 适配tdengine 2.0.16.0,优化sql长度策略. (pro)
- 优化规则引擎编辑器,实现组件模块化动态加载.(Pro)
- 修复启动服务时,如果某个产品物模型发布失败,导致后面的产品终止发布的问题.
- 增加ignoreLatest消息头,message.addHeader("ignoreLatest",true) 忽略记录最新数据到数据库.
- 修复租户下操作设备告警提示无权限.(Pro)
- 优化租户在解绑成员时,同时解绑成员的资产信息.(Pro)
- 优化子设备消息回复处理
- 物模型属性增加存储方式功能,可配置部分属性不存储.
- 增加虚拟属性功能,可通过规则来计算出虚拟属性值.(Pro)
- 增加租户成员绑定(TenantMemberBindEvent),解绑(TenantMemberUnBindEvent)事件.可通过spring-event订阅处理此事件.(Pro)
- 优化子设备状态检查,当检查子设备状态时,将会尝试发送ChildDeviceMessage给网关,处理后返回ChildDeviceMessageReply.
- 增加ClickHouse设备数据存储策略支持.(Pro)
- 增加权限过滤功能,可配置禁止赋予自己没有的权限给其他用户.hsweb.permission.filter相关配置
- 设备和产品的租户绑定逻辑优化: 绑定设备时,自动绑定产品.解绑产品时,自动解绑设备.(Pro)
- 用户管理增加租户权限控制.(Pro)
- 当向keepOnline当设备发送消息时,如果原始连接已断开,将返回CONNECTION_LOST错误.
- 设置keepOnline的会话将被持久化,重启服务后自动恢复.(Pro)