一种将物联网设备均衡分配接入的方法及装置与流程

文档序号:22084949发布日期:2020-09-01 19:56阅读:173来源:国知局
一种将物联网设备均衡分配接入的方法及装置与流程

本发明涉及物联网技术领域,尤其是涉及一种将物联网设备均衡分配接入的方法及装置。



背景技术:

在物联网系统中,各个物联网设备需要通过接入服务将设备和网络进行连接,可以通过sdk或者网络协议进行对接,从设备中获取数据上送到物联网系统内进行计算,以及将系统上层的设备控制指令发送给设备,从而实现设备控制。但是,由于物联网系统中需要接入的设备可能有很多,单个接入服务无法承载较多设备的连接,所以在物联网系统中往往可以横向扩展开多个接入服务,这时候就需要对接入服务进行负载均衡。

目前物联网系统中实现的设备均衡算法通常为“均分”的方式,这种方式当接入服务出现故障下线,或者需要新增接入服务时,重新均分的成本比较高,可能出现原先分配到的设备,当重新均衡后,这些设备已都不属于自己,这样会出现设备需要先下线,再在新分配的服务上线,这样就会造成系统的波动,例如如果是监控设备,则会出现正在预览的视频画面出现一段时间的无画面,造成用户体验下降。



技术实现要素:

本发明提供一种将物联网设备均衡分配接入的方法及装置,以解决现有的物联网设备均衡分配方案容易造成系统波动的问题。

为了解决上述技术问题,本发明实施例提供了一种将物联网设备均衡分配接入的方法,包括:

获取若干个待接入设备的信息以及若干个接入服务器的信息;所述待接入设备的信息包括待接入设备唯一标识、所述接入服务器的信息包括接入服务器唯一标识;

采用预设的哈希函数计算每一所述接入服务器唯一标识的第一哈希值,通过预设的有序数据结构将各个所述接入服务器唯一标识与其第一哈希值进行关联存储,并根据所述有序数据结构中顺序存储的第一哈希值构建一致性哈希环;

采用所述哈希函数计算每一所述待接入设备唯一标识的第二哈希值,并将每一所述第二哈希值与所述一致性哈希环中的第一哈希值进行一一比较;

若从所述一致性哈希环中查询到大于所述第二哈希值的候选哈希值集合,则从所述候选哈希值集合中选择最小的第一哈希值与该第二哈希值建立绑定关系;

若从所述一致性哈希环中没有查询到大于所述第二哈希值的候选哈希值集合,则从所述一致性哈希环中选择最小的第一哈希值与该第二哈希值建立绑定关系;

按照所述绑定关系将每一所述待接入设备分配接入到对应的接入服务器中。

进一步地,所述采用预设的哈希函数计算每一所述接入服务器唯一标识的第一哈希值,通过预设的有序数据结构将各个所述接入服务器唯一标识与其第一哈希值进行关联存储,并根据所述有序数据结构中顺序存储的第一哈希值构建一致性哈希环,具体包括:

将每一所述接入服务器转化为若干个接入服务器虚拟节点,并对每一所述接入服务器虚拟节点分配一个唯一标识;

采用所述哈希函数计算每一所述接入服务器虚拟节点唯一标识的第一哈希值;

通过预设的有序数据结构将各个所述接入服务器虚拟节点唯一标识与其第一哈希值进行关联存储;

根据所述有序数据结构中顺序存储的第一哈希值构建一致性哈希环。

进一步地,所述第一哈希值为采用所述哈希函数对接入服务器唯一标识md5字符串进行计算得到;其中,所述接入服务器唯一标识md5字符串为采用md5算法对该接入服务器唯一标识进行计算得到;

所述第二哈希值为采用所述哈希函数对待接入设备唯一标识md5字符串进行计算得到;其中,所述待接入设备唯一标识md5字符串为采用所述md5算法对该待接入设备唯一标识进行计算得到。

进一步地,所述的将物联网设备均衡分配接入的方法还包括:

当出现接入服务器故障时,将接入到该故障的接入服务器上的设备按预设的顺序分配接入至下一接入服务器中,并将该故障的接入服务器从所述一致性哈希环中移除。

进一步地,所述的将物联网设备均衡分配接入的方法还包括:

当新增接入服务器时,采用所述哈希函数计算所述新增接入服务器唯一标识的第一哈希值,并根据所述有序数据结构的存储顺序将该新增接入服务器唯一标识的第一哈希值插入至对应的位置中;

根据新增数据后的有序数据结构对所述一致性哈希环进行更新,并找出所述新增接入服务器在一致性哈希环中的下一接入服务器作为待调整接入服务器;

将接入到所述待调整接入服务器中的设备进行重新计算比较和调整绑定关系,并根据重新调整的绑定关系对待调整接入服务器中的设备进行重新分配接入。

进一步地,所述哈希函数为bkdr哈希函数。

为了解决相同的技术问题,本发明还提供了一种将物联网设备均衡分配接入的装置,包括:

信息获取模块,用于获取若干个待接入设备的信息以及若干个接入服务器的信息;所述待接入设备的信息包括待接入设备唯一标识、所述接入服务器的信息包括接入服务器唯一标识;

哈希环构建模块,用于采用预设的哈希函数计算每一所述接入服务器唯一标识的第一哈希值,通过预设的有序数据结构将各个所述接入服务器唯一标识与其第一哈希值进行关联存储,并根据所述有序数据结构中顺序存储的第一哈希值构建一致性哈希环;

哈希值比较模块,用于采用所述哈希函数计算每一所述待接入设备唯一标识的第二哈希值,并将每一所述第二哈希值与所述一致性哈希环中的第一哈希值进行一一比较;

第一绑定模块,用于若从所述一致性哈希环中查询到大于所述第二哈希值的候选哈希值集合,则从所述候选哈希值集合中选择最小的第一哈希值与该第二哈希值建立绑定关系;

第二绑定模块,用于若从所述一致性哈希环中没有查询到大于所述第二哈希值的候选哈希值集合,则从所述一致性哈希环中选择最小的第一哈希值与该第二哈希值建立绑定关系;

设备接入模块,用于按照所述绑定关系将每一所述待接入设备分配接入到对应的接入服务器中。

进一步地,所述哈希环构建模块,具体包括:

节点虚拟单元,用于将每一所述接入服务器转化为若干个接入服务器虚拟节点,并对每一所述接入服务器虚拟节点分配一个唯一标识;

哈希计算单元,用于采用所述哈希函数计算每一所述接入服务器虚拟节点唯一标识的第一哈希值;

关联存储单元,用于通过预设的有序数据结构将各个所述接入服务器虚拟节点唯一标识与其第一哈希值进行关联存储;

哈希环构建单元,用于根据所述有序数据结构中顺序存储的第一哈希值构建一致性哈希环。

进一步地,所述第一哈希值为采用所述哈希函数对接入服务器唯一标识md5字符串进行计算得到;其中,所述接入服务器唯一标识md5字符串为采用md5算法对该接入服务器唯一标识进行计算得到;

所述第二哈希值为采用所述哈希函数对待接入设备唯一标识md5字符串进行计算得到;其中,所述待接入设备唯一标识md5字符串为采用所述md5算法对该待接入设备唯一标识进行计算得到。

进一步地,所述的将物联网设备均衡分配接入的装置还包括故障调整模块,用于:

当出现接入服务器故障时,将接入到该故障的接入服务器上的设备按预设的顺序分配接入至下一接入服务器中,并将该故障的接入服务器从所述一致性哈希环中移除。

与现有技术相比,本发明具有如下有益效果:

本发明实施例提供了一种将物联网设备均衡分配接入的方法及装置,所述方法包括:获取若干个待接入设备的信息以及若干个接入服务器的信息;所述待接入设备的信息包括待接入设备唯一标识、所述接入服务器的信息包括接入服务器唯一标识;采用预设的哈希函数计算每一所述接入服务器唯一标识的第一哈希值,通过预设的有序数据结构将各个所述接入服务器唯一标识与其第一哈希值进行关联存储,并根据所述有序数据结构中顺序存储的第一哈希值构建一致性哈希环;采用所述哈希函数计算每一所述待接入设备唯一标识的第二哈希值,并将每一所述第二哈希值与所述一致性哈希环中的第一哈希值进行一一比较;若从所述一致性哈希环中查询到大于所述第二哈希值的候选哈希值集合,则从所述候选哈希值集合中选择最小的第一哈希值与该第二哈希值建立绑定关系;若从所述一致性哈希环中没有查询到大于所述第二哈希值的候选哈希值集合,则从所述一致性哈希环中选择最小的第一哈希值与该第二哈希值建立绑定关系;按照所述绑定关系将每一所述待接入设备分配接入到对应的接入服务器中。本发明能够解决现有的物联网设备均衡分配方案容易造成系统波动的问题,利用一致性哈希算法将物联网设备进行均衡分配接入到接入服务器中,从而能够使物联网系统在设备接入服务故障/新增时,设备接入重新均衡分配过程能够平稳过渡,不会造成系统运行的大波动性,从而减少用户体验的下降。

附图说明

图1是本发明一实施例提供的将物联网设备均衡分配接入的方法的流程示意图;

图2是本发明一实施例提供的哈希环构建示意图;

图3是本发明一实施例提供的设备均衡分配示意图;

图4是本发明一实施例提供的将物联网设备均衡分配接入的装置的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参见图1,本发明实施例提供了一种将物联网设备均衡分配接入的方法,包括步骤:

s1、获取若干个待接入设备的信息以及若干个接入服务器的信息;所述待接入设备的信息包括待接入设备唯一标识、所述接入服务器的信息包括接入服务器唯一标识;其中,所述待接入设备、所述接入服务器均为至少1个;可以理解的是,当接入服务器为1个时,则可以是所有接入设备均直接接入到这个接入服务器上。

s2、采用预设的哈希函数计算每一所述接入服务器唯一标识的第一哈希值,通过预设的有序数据结构将各个所述接入服务器唯一标识与其第一哈希值进行关联存储,并根据所述有序数据结构中顺序存储的第一哈希值构建一致性哈希环。作为优选方案,所述哈希函数为bkdr哈希函数。在本发明实施例中,进一步地,所述第一哈希值为采用所述哈希函数对接入服务器唯一标识md5字符串进行计算得到;其中,所述接入服务器唯一标识md5字符串为采用md5算法对该接入服务器唯一标识进行计算得到;

所述第二哈希值为采用所述哈希函数对待接入设备唯一标识md5字符串进行计算得到;其中,所述待接入设备唯一标识md5字符串为采用所述md5算法对该待接入设备唯一标识进行计算得到。

在本发明实施例中,进一步地,步骤s2具体包括:

s201、将每一所述接入服务器转化为若干个接入服务器虚拟节点,并对每一所述接入服务器虚拟节点分配一个唯一标识;

s202、采用所述哈希函数计算每一所述接入服务器虚拟节点唯一标识的第一哈希值;

s203、通过预设的有序数据结构将各个所述接入服务器虚拟节点唯一标识与其第一哈希值进行关联存储;

s204、根据所述有序数据结构中顺序存储的第一哈希值构建一致性哈希环。

s3、采用所述哈希函数计算每一所述待接入设备唯一标识的第二哈希值,并将每一所述第二哈希值与所述一致性哈希环中的第一哈希值进行一一比较;

s4、若从所述一致性哈希环中查询到大于所述第二哈希值的候选哈希值集合,则从所述候选哈希值集合中选择最小的第一哈希值与该第二哈希值建立绑定关系;

s5、若从所述一致性哈希环中没有查询到大于所述第二哈希值的候选哈希值集合,则从所述一致性哈希环中选择最小的第一哈希值与该第二哈希值建立绑定关系;

s6、按照所述绑定关系将每一所述待接入设备分配接入到对应的接入服务器中。

在本发明实施例中,进一步地,所述的将物联网设备均衡分配接入的方法还包括步骤:

s7、当出现接入服务器故障时,将接入到该故障的接入服务器上的设备按预设的顺序分配接入至下一接入服务器中,并将该故障的接入服务器从所述一致性哈希环中移除。

在本发明实施例中,进一步地,所述的将物联网设备均衡分配接入的方法还包括:

s801、当新增接入服务器时,采用所述哈希函数计算所述新增接入服务器唯一标识的第一哈希值,并根据所述有序数据结构的存储顺序将该新增接入服务器唯一标识的第一哈希值插入至对应的位置中;

s802、根据新增数据后的有序数据结构对所述一致性哈希环进行更新,并找出所述新增接入服务器在一致性哈希环中的下一接入服务器作为待调整接入服务器;

s803、将接入到所述待调整接入服务器中的设备进行重新计算比较和调整绑定关系,并根据重新调整的绑定关系对待调整接入服务器中的设备进行重新分配接入。

可以理解的是,本发明方案整个均衡过程为:均衡服务首先获取设备信息以及接入服务列表,再采用一致性hash算法将设备均衡分配到各个接入服务,最后将结构推送给接入服务,同时也支持接入服务来获取分配到自己身上的设备列表。

需要说明的是,均衡算法采用一致性hash算法,它是本设计的核心,一致性hash所实现的设备均衡分配的优势是当接入服务节点故障获取增加节点时,重平衡过程比较稳定平滑,不会出现原分配到其他接入服务上的设备大批量失效而全部设备进行分配的情况,可保证设备接入稳定。

基于上述方案,为便于更好的理解本发明实施例,下面详细介绍如何实现设备均衡的过程:

1、请参加图2,一致性hash环构建如下:

首先,构建一致性hash环需要确定一个hash函数,hash函数需具备以下几个特性:

(1)、随机性高,即输入内容只要发生一点改动,输出hash值会发生很大的变化。

(2)、相同的输入内容,同一hash函数每次计算的结果是一样的

(3)性能好,即计算hash值不会耗时很长。

优选地,本发明实施例采用的hash函数是开源的bkdrhash函数。该hash函数的结果值范围为0~232-1。

接着,根据接入服务(接入服务器)的唯一标识,通过hash函数计算出每个服务的hash值,最后,用一个有序数据结构存储这些hash值,作为优选方案,本发明实施例采用红黑树实现的容器,key为hash值,value为hash值对应服务的信息(服务的唯一标识),记录服务的唯一标识,是为了在设备均衡分配的时候,能找到所分配到的服务节点(即hash值与服务标识的映射)。作为优选方案,为了保证分配更加的均衡,需要将每个接入服务虚拟出多个节点,(默认虚拟出25个节点,这是经过实际测试后采取的优选数值,虚拟节点数量可以设计成一个可配置参数,作为本系统的一个均衡因子,可在生产环境中根据实际情况调节)。至此,一致性hash环构建完成。

作为优选方案,在实现过程中,所有需要计算hash值的地方,都先对输入值进行了md5计算(测试发现先经过md5计算后再进行hash计算会更随机,有利于设备接入的均衡分配效果),得到了md5字符串之后再通过bkdrhash函数计算hash值。

2、请参见图3,设备均衡分配过程如下:

在原先根据接入服务构建好的hash环的基础上,通过对设备(待接入设备)的唯一标识进行hash计算(采用上述所确定的hash函数)得到hash值,在hash环中找到比该hash值大且最接近的服务节点(如果没有则为最小那个节点),因为服务节点是通过有序数据结构存储的,所以查找的方式即为顺时针找距离最近的节点,找到该节点后,设备就分配到该节点上,以次类推,当对每个设备进行如上操作后,负载均衡就完成了。

当接入服务出现故障时,如图3所示,假设接入服务b故障了,那么只需要把原先分配到接入服务b上的设备分配给b的顺时针最近节点(接入服务c)即可;

当新增接入服务时,假设新增接入服务d,通过hash函数计算出接入服务d的hash值落在b和c之间,那么只需要把原先分配到接入服务c的设备重新计算一次即可;

可以理解的是,通过实施本发明,不管是服务故障还是新增服务,整个重平衡的过程不会涉及到大面积的设备重新分配,所以非常的平滑稳定。

为了便于对本发明方案的理解,以下为部分术语解释:

物联网系统:指的是通过将射频自动识别、红外感应器、全球定位系统、激光扫描仪、图像感知器等信息设备,按约定的协议,把各种物品与互联网连接起来,进行信息交换和通信,以实现智能化识别、定位、跟踪、监控和管理的系统。

设备接入服务(接入服务器):其作用是通过网络与设备进行连接,可以通过sdk或者网络协议进行对接,可以从设备中获取数据上送到物联网系统内进行计算,以及将系统上层的设备控制指令发送给设备,从而实现设备控制。

负载均衡:其作用是将需要接入的设备(待接入设备)均衡分配给多个接入服务,由于物联网系统中需要接入的设备可能很多,单个接入服务无法承载较多设备的连接,所以在物联网系统中往往可以横向扩展开多个接入服务,这时候就需要有均衡服务做负载均衡的工作。

需要说明的是,目前物联网系统中实现的设备均衡算法通常为“均分”的方式,这种方式当接入服务出现故障下线,或者需要新增接入服务时,重新均分的成本比较高,可能出现原先分配到的设备,当重新均衡后,这些设备已都不属于自己,这样会出现设备需要先下线,再在新分配的服务上线,这样就会造成系统的波动,如果是监控设备,则会出现正在预览的视频画面出现一段时间的无画面,造成用户体验下降。

本发明方案的优点为减少由于设备接入服务故障/新增时造成的设备重平衡的波动性,利用一致性hash算法,当设备接入服务故障或者新增时,需要重新平衡的设备仅仅时故障/新增服务在hash环中附件的服务节点,而不是大面积的设备需要重新分配,使得整个重平衡过程非常的平滑。

需要说明的是,对于以上方法或流程实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作并不一定是本发明实施例所必须的。

请参见图4,为了解决相同的技术问题,本发明还提供了一种将物联网设备均衡分配接入的装置,包括:

信息获取模块1,用于获取若干个待接入设备的信息以及若干个接入服务器的信息;所述待接入设备的信息包括待接入设备唯一标识、所述接入服务器的信息包括接入服务器唯一标识;

哈希环构建模块2,用于采用预设的哈希函数计算每一所述接入服务器唯一标识的第一哈希值,通过预设的有序数据结构将各个所述接入服务器唯一标识与其第一哈希值进行关联存储,并根据所述有序数据结构中顺序存储的第一哈希值构建一致性哈希环;

哈希值比较模块3,用于采用所述哈希函数计算每一所述待接入设备唯一标识的第二哈希值,并将每一所述第二哈希值与所述一致性哈希环中的第一哈希值进行一一比较;

第一绑定模块4,用于若从所述一致性哈希环中查询到大于所述第二哈希值的候选哈希值集合,则从所述候选哈希值集合中选择最小的第一哈希值与该第二哈希值建立绑定关系;

第二绑定模块5,用于若从所述一致性哈希环中没有查询到大于所述第二哈希值的候选哈希值集合,则从所述一致性哈希环中选择最小的第一哈希值与该第二哈希值建立绑定关系;

设备接入模块6,用于按照所述绑定关系将每一所述待接入设备分配接入到对应的接入服务器中。

进一步地,所述哈希环构建模块2,具体包括:

节点虚拟单元,用于将每一所述接入服务器转化为若干个接入服务器虚拟节点,并对每一所述接入服务器虚拟节点分配一个唯一标识;

哈希计算单元,用于采用所述哈希函数计算每一所述接入服务器虚拟节点唯一标识的第一哈希值;

关联存储单元,用于通过预设的有序数据结构将各个所述接入服务器虚拟节点唯一标识与其第一哈希值进行关联存储;

哈希环构建单元,用于根据所述有序数据结构中顺序存储的第一哈希值构建一致性哈希环。

进一步地,所述第一哈希值为采用所述哈希函数对接入服务器唯一标识md5字符串进行计算得到;其中,所述接入服务器唯一标识md5字符串为采用md5算法对该接入服务器唯一标识进行计算得到;

所述第二哈希值为采用所述哈希函数对待接入设备唯一标识md5字符串进行计算得到;其中,所述待接入设备唯一标识md5字符串为采用所述md5算法对该待接入设备唯一标识进行计算得到。

进一步地,所述的将物联网设备均衡分配接入的装置还包括故障调整模块,用于:

当出现接入服务器故障时,将接入到该故障的接入服务器上的设备按预设的顺序分配接入至下一接入服务器中,并将该故障的接入服务器从所述一致性哈希环中移除。

进一步地,所述的将物联网设备均衡分配接入的装置,还包括新增服务调整模块,用于:

当新增接入服务器时,采用所述哈希函数计算所述新增接入服务器唯一标识的第一哈希值,并根据所述有序数据结构的存储顺序将该新增接入服务器唯一标识的第一哈希值插入至对应的位置中;

根据新增数据后的有序数据结构对所述一致性哈希环进行更新,并找出所述新增接入服务器在一致性哈希环中的下一接入服务器作为待调整接入服务器;

将接入到所述待调整接入服务器中的设备进行重新计算比较和调整绑定关系,并根据重新调整的绑定关系对待调整接入服务器中的设备进行重新分配接入。

可以理解的是上述装置项实施例,是与本发明方法项实施例相对应的,本发明实施例提供的一种将物联网设备均衡分配接入的装置,可以实现本发明任意一项方法项实施例提供的将物联网设备均衡分配接入的方法。

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

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1