一种物联网设备接入方法及系统

文档序号:1819840 发布日期:2021-11-09 浏览:3次 >En<

阅读说明:本技术 一种物联网设备接入方法及系统 (Internet of things equipment access method and system ) 是由 刘源 姜仁杰 张彬 张海涛 郭沛 吴今 于 2020-05-07 设计创作,主要内容包括:本发明提供了一种物联网设备接入方法及系统,该方法包括:获取目标信息;将目标信息中的至少部分保存至远程字典服务Redis数据库中。本发明实施例通过将物联网设备与分布式节点的连接信息、物联网设备的订阅信息、分布式节点之间的路由信息、连接信息的过期时间、订阅信息的过期时间、物联网设备的业务数据、以及物联网设备的状态中的至少一项目标信息保存至Redis数据库的方式,内部实现集群模式不依赖第三方组件维护,使用简便、维护成本第,在分布式集群模式下,各个分布式节点间的信息同步速率较高,且能够保证数据的一致性,消息流转速度快。(The invention provides an Internet of things equipment access method and system, wherein the method comprises the following steps: acquiring target information; saving at least part of the target information to a remote dictionary service Redis database. According to the embodiment of the invention, at least one item of target information of the connection information between the Internet of things equipment and the distributed nodes, the subscription information of the Internet of things equipment, the routing information between the distributed nodes, the expiration time of the connection information, the expiration time of the subscription information, the service data of the Internet of things equipment and the state of the Internet of things equipment is stored in the Redis database, the cluster mode is internally realized without depending on the maintenance of a third-party component, the use is simple and convenient, the maintenance cost is low, the information synchronization rate between the distributed nodes is high in the distributed cluster mode, the data consistency can be ensured, and the message flow speed is high.)

一种物联网设备接入方法及系统

技术领域

本发明涉及通信技术领域,尤其涉及一种物联网设备接入方法及系统。

背景技术

遥测传输协议(Message Queue Telemetry Transport,MQTT)属于物联网(Internet of Thing,IoT)的一种传输协议,主要提供订阅、发布模式,其设计思想开放、简单、轻量易于实现,即使在受限环境(如:带宽低、网络延迟高、网络通信不稳定等)亦可使用。

由于物联网设备的硬件和带宽受限的特征,现有的物联网平台实现设备接入的方案大都采用MQTT协议。目前,MOTT协议在网络中定义了两种实体类型:一个是消息代理,一个是客户端。其中,代理可作为一个服务器,从客户端接听所有消息,然后将这些消息路由到相关的目标客户端。客户端可以是通过与代理交互来发送和接收消息的任何事物。例如,客户端可以是现场的IoT传感器,或者是数据中心内处理IoT数据的应用程序等。

目前,基于MQTT协议的发布订阅机制实现设备接入的方法中,实时性较差的问题。

发明内容

本发明提供一种物联网设备接入方法及系统,解决了现有的物联网设备接入方法中实时性差的问题。

本发明的实施例提供一种物联网设备接入方法,包括:

获取目标信息;其中,目标信息包括:物联网设备与分布式节点的连接信息、物联网设备的订阅信息、分布式节点之间的路由信息、连接信息的过期时间、订阅信息的过期时间、物联网设备的业务数据、以及物联网设备的状态中的至少一项;

将目标信息中的至少部分保存至远程字典服务(Remote Dictionary Server,Redis)数据库中。

可选地,将目标信息保存至远程字典服务Redis数据库中的步骤之后,还包括:

在发生以下情况中的至少一种时,从Redis数据库中读取相应的信息:

分布式节点中的写入节点异常;

分布式节点组成的节点集群异常;

物联网设备重连时。

可选地,获取目标信息的步骤之前,还包括:

获取物联网设备的接入请求;其中,接入请求包括:客户端(Clien)ID、用户名和密码、主题访问控制中的至少一项;

根据接入请求,对物联网设备进行鉴权;

若鉴权通过,则获取物联网设备与分布式节点的连接信息。

可选地,获取目标信息的步骤之后,还包括:

监控物联网设备的状态和物联网设备的业务数据。

可选地,获取目标信息的步骤之后,还包括:

将物联网设备的状态以及时间戳同步至设备影子模块。

可选地,本发明实施例的物联网设备接入方法还包括:

在发生以下情况中的至少一种时,从设备影子模块读取物联网设备的状态:

物联网设备的状态为下线状态;

多程序同时请求物联网设备的状态;

物联网设备掉线后重新上线。

可选地,本发明实施例的物联网设备接入方法还包括:

缓存物联网设备的订阅信息、状态和设备间的消息流转数据;

和/或,

存储物联网设备的业务数据。

可选地,订阅信息包括:主题与分布式节点的映射关系,主题包含通配符+、#、*。

可选地,将目标信息中的至少部分保存至远程字典服务Redis数据库中包括:

将目标信息中服务质量(Quality of Service,Qos)为第一值的部分保存至Redis数据库中。

本发明实施例还提供了一种物联网设备接入系统,包括:物联网设备,与物联网设备连接的网关,与网关连接的接入核心模块;其中,接入核心模块包括:

第一获取单元,用于获取目标信息;其中,目标信息包括:物联网设备与分布式节点的连接信息、物联网设备的订阅信息、分布式节点之间的路由信息、连接信息的过期时间、订阅信息的过期时间、物联网设备的业务数据、以及物联网设备的状态中的至少一项;

保存单元,用于将目标信息中的至少部分保存至远程字典服务Redis数据库中。

可选地,接入核心模块还包括:

第一读取单元,用于在发生以下情况中的至少一种时,从Redis数据库中读取相应的信息:

分布式节点中的写入节点异常;

分布式节点组成的节点集群异常;

物联网设备重连时。

可选地,接入核心模块还包括:

第二获取单元,用于获取物联网设备的接入请求;其中,接入请求包括:客户端ID、用户名和密码、主题访问控制中的至少一项;

根据接入请求,对物联网设备进行鉴权;

若鉴权通过,则获取物联网设备与分布式节点的连接信息。

可选地,本发明实施例的物联网设备接入系统还包括:

数据监控模块,用于监控物联网设备的状态和物联网设备的业务数据。

可选地,本发明实施例的物联网设备接入系统还包括:

设备影子模块,接入核心模块将物联网设备的状态以及时间戳同步至设备影子模块。

可选地,接入核心模块与设备影子模块通过kafka连接。

可选地,接入核心模块还包括:

第二读取单元,用于在发生以下情况中的至少一种时,从设备影子模块读取物联网设备的状态:

物联网设备的状态为下线状态;

多程序同时请求物联网设备的状态;

物联网设备掉线后重新上线。

可选地,物联网设备接入系统还包括:

缓存模块,用于缓存物联网设备的订阅信息、状态和设备间的消息流转数据;

和/或,

数据库,用于存储物联网设备的业务数据。

可选地,订阅信息包括:主题与分布式节点的映射关系,主题包含通配符+、#、*。

可选地,保存单元具体用于:将目标信息中服务质量Qos为第一值的部分保存至Redis数据库中。

本发明的上述技术方案的有益效果是:通过将物联网设备与分布式节点的连接信息、物联网设备的订阅信息、分布式节点之间的路由信息、连接信息的过期时间、订阅信息的过期时间、物联网设备的业务数据、以及物联网设备的状态中的至少一项目标信息保存至Redis数据库的方式,内部实现集群模式不依赖第三方组件维护,使用简便、维护成本第,在分布式集群模式下,各个分布式节点间的信息同步速率较高,且能够保证数据的一致性,消息流转速度快。

附图说明

图1表示本发明实施例的物联网设备接入方法流程示意图;

图2表示本发明实施例的物联网设备接入系统的框图;

图3表示本发明实施例的接入核心模块的单元结构示意图。

具体实施方式

为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。在下面的描述中,提供诸如具体的配置和组件的特定细节仅仅是为了帮助全面理解本发明的实施例。因此,本领域技术人员应该清楚,可以对这里描述的实施例进行各种改变和修改而不脱离本发明的范围和精神。另外,为了清楚和简洁,省略了对已知功能和构造的描述。

应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本发明的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。

在本发明的各种实施例中,应理解,下述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

另外,本文中术语“系统”和“网络”在本文中常可互换使用。

在本申请所提供的实施例中,应理解,“与A相应的B”表示B与A相关联,根据A可以确定B。但还应理解,根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其它信息确定B。

如图1所示,本发明的实施例提供了一种物联网设备接入方法,具体包括以下步骤:

步骤11:获取目标信息。

其中,目标信息包括:物联网设备与分布式节点的连接信息、物联网设备的订阅信息、分布式节点之间的路由信息、连接信息的过期时间、订阅信息的过期时间、物联网设备的业务数据、以及物联网设备的状态中的至少一项。

步骤12:将目标信息中的至少部分保存至远程字典服务Redis数据库中。

可选地,将目标信息保存至远程字典服务Redis数据库中的步骤之后,还包括:

在发生以下情况中的至少一种时,从Redis数据库中读取相应的信息:

分布式节点中的写入节点异常;

分布式节点组成的节点集群异常;

物联网设备重连时。

可选地,获取目标信息的步骤之前,还包括:

获取物联网设备的接入请求;其中,接入请求包括:客户端ID、用户名和密码、主题访问控制中的至少一项;

根据接入请求,对物联网设备进行鉴权;

若鉴权通过,则获取物联网设备与分布式节点的连接信息。

可选地,获取目标信息的步骤之后,还包括:

监控物联网设备的状态和物联网设备的业务数据。

可选地,获取目标信息的步骤之后,还包括:

将物联网设备的状态以及时间戳同步至设备影子模块。

可选地,本发明实施例的物联网设备接入方法还包括:

在发生以下情况中的至少一种时,从设备影子模块读取物联网设备的状态:

物联网设备的状态为下线状态;

多程序同时请求物联网设备的状态;

物联网设备掉线后重新上线。

可选地,本发明实施例的物联网设备接入方法还包括:

缓存物联网设备的订阅信息、状态和设备间的消息流转数据;

和/或,

存储物联网设备的业务数据。

可选地,订阅信息包括:主题与分布式节点的映射关系,主题包含通配符+、#、*。

可选地,将目标信息中的至少部分保存至远程字典服务Redis数据库中包括:

将目标信息中服务质量Qos为第一值的部分保存至Redis数据库中。其中,Qos的值表示Qos级别,例如Qos的值可以包括0或1。其中,以物联网设备的业务数据为例,将Qos>1的消息存放在Redis中,使用Redis自带的过期机制实现对消息的自定义存储测量,当物联网设备重连时,可通过自定义配置实现消息重发,等待物联网设备确认后删除对应的消息。

通过将物联网设备与分布式节点的连接信息、物联网设备的订阅信息、分布式节点之间的路由信息、连接信息的过期时间、订阅信息的过期时间、物联网设备的业务数据、以及物联网设备的状态中的至少一项目标信息保存至Redis数据库的方式,内部实现集群模式不依赖第三方组件维护,使用简便、维护成本第,在分布式集群模式下,各个分布式节点间的信息同步速率较高,且能够保证数据的一致性,消息流转速度快。

以上实施例分别就本发明的物联网设备接入方法做出介绍,下面本实施例将结合附图对其对应的系统做进一步说明。

具体地,如图2所示,本发明实施例的物联网设备接入系统,包括:物联网设备21(或称为MQTT设备),与物联网设备21连接的网关22,与网关22连接的接入核心模块23(或称为MQTT破解器BROKER);其中,网关22用于物联网设备21的负载均衡。接入核心模块具备核心功能:1、物联网设备21(如MQTT设备)的接入和鉴权、主题订阅和发布、消息(如业务数据)的流转等。另外,接入核心模块还可以支持MQTTv3.3.1协议规范,支持安全传输层协议(Transport Layer Security,TLS)/安全套接字协议(Security Sockets Layer,SSL)及内部加密通信。其中,接入核心模块23包括多个分布式节点,核心接入模块23可工作于分布式集群模式,可以不依赖第三方管理工具实现分布式集群模式,节点间自动同步订阅信息。另外,接入核心模块23还可自定义消息存储策略、支持消息重发机制、多维度的限流策略、超过阈值自动熔断机制等。下面结合附图对其做进一步说明。

如图3所示,本发明实施例的接入核心模块23包括:

第一获取单元31,用于获取目标信息;其中,目标信息包括:物联网设备与分布式节点的连接信息、物联网设备的订阅信息、分布式节点之间的路由信息、连接信息的过期时间、订阅信息的过期时间、物联网设备的业务数据、以及物联网设备的状态中的至少一项;

保存单元32,用于将目标信息中的至少部分保存至远程字典服务Redis数据库中。

接入核心模块23的核心功能为:在分布式集群模式下,各个节点间的数据一致性及同步效率的问题。本发明实施例的接入核心模块23可以实时同步并保存的数据包括但不限于:某个节点上有哪些设备连接,某个节点上连接设备的订阅信息,消息的存储,以及消息从源地址到目的地址的路由信息。

考虑到数据同步的时效性及资源消耗问题,本发明实施例可以采用主题树+本地缓存+Redis的方案。可选地,接入核心模块23还包括:

第一读取单元,用于在发生以下情况中的至少一种时,从Redis数据库中读取相应的信息:

分布式节点中的写入节点异常;

分布式节点组成的节点集群异常;

物联网设备重连时。

以物联网设备的状态等为例,在本地缓存中保存一份物联网设备连接到某个分布式节点的连接信息,利用redis数据库提供的SETNX命令模拟分布式锁,将物联网设备的状态写入到redis数据库中并设置过期时间,这样如果写入节点出现异常,可以使物联网设备的状态在最短时间内与真实设备同步,从而保证物联网设备在整个集群节点中的状态的正确。

以订阅/取消订阅某个主题为例,物联网设备订阅/取消订阅某个主题,首先在当前节点的主题树中保存/取消物联网设备与主题的订阅关系,也需要将此关系保存到Redis数据库中,当集群节点从异常中恢复时可以从Redis数据库中读取该数据并恢复。

可选地,该接入核心模块23还支持通过分布式节点间的私有通信协议,将主题与分布式节点的映射关系广播到其他节点。其他节点接收到该数据后保存在本地节点缓存中。

可选地,保存单元32具体用于:将目标信息中服务质量Qos为第一值的部分保存至Redis数据库中。其中,Qos的值用于指示Qos级别,第一值可以是大于0的值,例如将所有Qos>0的消息存放在Redis数据库中,使用Redis数据库自带的过期机制,实现平台对消息的自定义存储策略。当物联网设备重连时,可通过自定义配置实现消息重发,等待物联网设备确认后删除对应的消息,以释放内存。可选地,本发明实施例的接入核心模块23支持QOS级别有0、1。

本发明实施例中,当接入核心模块23工作于集群模式时,当发布的某个物联网设备的消息到达一个节点时,首先从当前节点的主题树中查找目的设备,若找到目的设备就直接发送,否则通过主题与节点的映射关系,将消息路由到对应的节点再从目的节点的主题树中找到目的设备。

也就是说,本发明实施例的接入核心模块23支持的功能有:支持Connect、Disconnect、Subscribe、Publish、Unsubscribe、Ping等功能,支持Keepalive,支持Retain、Will、Clean Session等。

可选地,接入核心模块23支持的功能还有支持ClienID、用户名和密码鉴权和topic访问控制,具体地,接入核心模块23还包括:

第二获取单元,用于获取物联网设备的接入请求;其中,接入请求包括:ClienID、用户名和密码、主题访问控制中的至少一项;

根据接入请求,对物联网设备进行鉴权;

若鉴权通过,则获取物联网设备与分布式节点的连接信息。

可选地,本发明实施例的物联网设备接入系统还包括:

数据监控模块,用于监控物联网设备的状态和物联网设备的业务数据。可选地,数据监控模块可提供api接口对物联网设备的状态和业务数据进行监控。

可选地,本发明实施例的物联网设备接入系统还包括:

设备影子模块24,接入核心模块将物联网设备的状态以及时间戳同步至设备影子模块。

本发明实施例的物联网接入系统提供设备影子功能,用于缓存设备状态。设备在线时,可以直接获取云端指令;设备离线时,上线后可以主动拉取云端指令。

可选地,接入核心模块23与设备影子模块24通过kafka25连接。kafka25作为设备核心模块23与设备影子模块24的通信中间件,可解耦模块间的业务逻辑,实现异步的数据传输功能。

可选地,接入核心模块23还包括:

第二读取单元,用于在发生以下情况中的至少一种时,从设备影子模块读取物联网设备的状态:

物联网设备的状态为下线状态;

多程序同时请求物联网设备的状态;

物联网设备掉线后重新上线。

也就是说,设备影子适用于如下场景:

一、网络不稳定,设备频繁上下线。

使用设备影子机制存储设备最新状态,一旦物联网设备的状态产生变化,物联网设备会将状态同步到设备影子模块24。应用程序在请求设备当前状态时,只需要获取设备影子模块24中的状态即可,不需要关心设备是否在线。

二、多程序同时请求获取设备状态。

物联网设备只需要主动同步状态给设备影子模块24一次,多个应用程序请求设备影子模块24以获取设备状态,即可获取设备最新状态,以实现应用程序和物联网设备的解耦。

三、物联网设备掉线。

物联网设备真实掉线,指令发送失败。当物联网设备再上线时,设备影子模块24可通过指令加时间戳的模式,保证物联网设备不会执行过期指令。

可选地,物联网设备接入系统还包括:

缓存模块26,用于缓存物联网设备的订阅信息、状态和设备间的消息流转数据。

缓存模块26(如Redis数据库)主要用于存储热点和非持久化数据,加快整个系统的响应性能,缓解数据库模块的请求压力,主要保存如下几类信息:设备订阅信息、设备在线状态、设备间的消息流转数据等。

和/或,

物联网设备接入系统还包括:数据库27,用于存储物联网设备的业务数据,例如保存业务基础信息以及作为数据存储的持久化及兜底策略,最大限度的保持数据的安全。

可选地,接入核心模块支持订阅某些含有特殊通配符的主题,例如支持订阅的主题包含有通配符+、#、*等。相应地,订阅信息包括:主题与分布式节点的映射关系,主题包含通配符+、#、*。

本发明实施例的物联网设备接入系统,通过设备影子模块25实现业务与状态的解耦,业务功能可以不依赖设备的实时状态,提高了系统的响应时效以及用户的使用体验。

另外,本发明实施例的物联网设备接入系统比较完整的实现了MQTT协议规范,覆盖面较广,更加全面的支持了很多不常用的设备使用场景,且支持对物联网设备整个连接生命周期的MQTTs加密功能,有效保证数据的安全性。

本发明实施例的物联网设备接入系统内部实现的集群模式不依赖第三方组件维护,使用简便、维护成本更低,自有的内部消息通信协议容易定制避免无效数据。且在分布式集群模式下,各个节点间的信息同步速率较高且能更好的保证数据一致性,消息流转速度快,能够自定义消息存储策略,支持消息重发,减少数据丢失的可能性。根据集群自身能力,动态的实施各个维度的限流策略,即使出现意外情况也能触发系统的自动熔断机制,有效的保护平台的正常功能运转。

本发明的系统实施例是与上述方法的实施例对应的,上述方法实施例中的所有实现手段均适用于该系统的实施例中,也能达到相同的技术效果。该系统通过物联网设备与分布式节点的连接信息、物联网设备的订阅信息、分布式节点之间的路由信息、连接信息的过期时间、订阅信息的过期时间、物联网设备的业务数据、以及物联网设备的状态中的至少一项目标信息保存至Redis数据库的方式,内部实现集群模式不依赖第三方组件维护,使用简便、维护成本第,在分布式集群模式下,各个分布式节点间的信息同步速率较高,且能够保证数据的一致性,消息流转速度快。

本领域技术人员可以理解,实现上述实施例的全部或者部分步骤可以通过硬件来完成,也可以通过计算机程序来指示相关的硬件来完成,所述计算机程序包括执行上述方法的部分或者全部步骤的指令;且该计算机程序可以存储于一可读存储介质中,存储介质可以是任何形式的存储介质。

本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述物联网设备接入方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random AccessMemory,简称RAM)、磁碟或者光盘等。

此外,需要指出的是,在本发明的装置和方法中,显然,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本发明的等效方案。并且,执行上述系列处理的步骤可以自然地按照说明的顺序按时间顺序执行,但是并不需要一定按照时间顺序执行,某些步骤可以并行或彼此独立地执行。对本领域的普通技术人员而言,能够理解本发明的方法和装置的全部或者任何步骤或者部件,可以在任何计算装置(包括处理器、存储介质等)或者计算装置的网络中,以硬件、固件、软件或者它们的组合加以实现,这是本领域普通技术人员在阅读了本发明的说明的情况下运用他们的基本编程技能就能实现的。

因此,本发明的目的还可以通过在任何计算装置上运行一个程序或者一组程序来实现。所述计算装置可以是公知的通用装置。因此,本发明的目的也可以仅仅通过提供包含实现所述方法或者装置的程序代码的程序产品来实现。也就是说,这样的程序产品也构成本发明,并且存储有这样的程序产品的存储介质也构成本发明。显然,所述存储介质可以是任何公知的存储介质或者将来所开发出来的任何存储介质。还需要指出的是,在本发明的装置和方法中,显然,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本发明的等效方案。并且,执行上述系列处理的步骤可以自然地按照说明的顺序按时间顺序执行,但是并不需要一定按照时间顺序执行。某些步骤可以并行或彼此独立地执行。

以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

13页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种匿名流量的识别方法、装置及电子设备

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类