一种基于消息的多实例负载均衡方法和系统技术方案

技术编号:33933260 阅读:19 留言:0更新日期:2022-06-25 22:46
本发明专利技术涉及物联网通信技术领域,公开了一种基于消息的多实例负载均衡方法和系统,包括步骤S1:获取待发布的消息,确定消息的消息属性;步骤S2:根据多实例建立第一哈希环;步骤S3:根据消息属性给多实例中各实例打分,根据各实例的得分调整第一哈希环,获得第二哈希环;步骤S4:根据待发布的消息的主题计算待发布的消息的哈希值,基于待发布的消息的哈希值从第二哈希环中选择目标实例;步骤S5:利用目标实例发布待发布的消息。实现了资源的优化,提高待发布消息的处理速度。提高待发布消息的处理速度。提高待发布消息的处理速度。

【技术实现步骤摘要】
一种基于消息的多实例负载均衡方法和系统


[0001]本专利技术涉及物联网通信
,具体涉及一种基于消息的多实例负载均衡方法和系统。

技术介绍

[0002]现有的MQTT客户端分为单实例和多实例,其中单实例客户端之间的通信在大部分情景下能有良好的表现,不过在指令集物联网操作系统下,设备集成需要能够接入百万量级的设备,通常的单实例客户端已经无法满足这样的需求了,使用单实例的客户端在处理高并发请求情况下,出现了消息丢失、连接断开的情况,并且在单实例出现异常后,整个设备接入就无法正常工作了,系统稳定性差。为了进一步适应物联网操作系统的高并发请求,多实例系统逐步发展。
[0003]多实例系统通常由一个MQTT服务器与多个实例连接,实现消息的订阅与发布。现有技术中,存在待发布消息时,需选择一个目标实例作为发布实例发布消息,目前现有技术中通常是按照顺序选择一个空闲实例或者随机进行选择,未能根据消息的内容选择最适合发布当前消息的目标实例,未能达到资源使用最优。
[0004]在从多个实例中选择目标实例时,部分现有技术借助服务器负载均衡方法从实例的网络连接、CPU、磁盘驱动器等因素中考虑其负载处理能力,以实现负载均衡、避免过载。然而上述方式仅仅考虑了目标实例自身的能力,没有考虑目标实例处理特定类型消息的能力。
[0005]综上所述,传统的目标实例选择方式不能根据当前消息的实际情况进行适应性选择,导致资源优化效果不足,难以适应当前物联网系统高并发量下的数据处理速度需求,亟需一种改进的多实例负载均衡方法和系统。<br/>
技术实现思路

[0006]本专利技术提供一种基于消息的多实例负载均衡方法,包括如下步骤:步骤S1:获取待发布的消息,确定消息的消息属性;步骤S2:根据多实例建立第一哈希环;步骤S3:根据消息属性给多实例中各实例打分,根据各实例的得分调整第一哈希环,获得第二哈希环;调整第一哈希环具体包括:根据各实例的得分确定候选实例,计算候选实例对应的虚拟实例的个数和位置,插入第一哈希环,各个候选实例对应的虚拟实例的个数不完全相同;步骤S4:根据待发布的消息的主题计算待发布的消息的哈希值,基于待发布的消息的哈希值从第二哈希环中选择目标实例;步骤S5:利用目标实例发布待发布的消息。
[0007]优选的,第一哈希环为仅包含多实例的哈希环,计算多实例中各个实例的哈希值,根据哈希值找到各个实例在哈希环上的位置插入实例,以建立第一哈希环。
[0008]优选的,构建哈希圆环,根据多实例中各个实例订阅的主题计算各个实例的哈希值,根据各个实例的哈希值将各个实例插入至哈希圆环中,获得第一哈希环。
[0009]优选的,消息属性包括消息类型和消息紧急程度,根据消息属性给各实例打分,具体包括:根据消息类型计算各实例的针对当前消息类型的处理得分;根据消息紧急程度计算各实例的负载能力得分;基于各实例的处理得分和负载能力得分计算各实例的得分。
[0010]优选的,处理得分用于表示当前实例发布同一消息类型的速度水平,取任一未打分的实例作为当前实例,基于当前实例历史消息发布速度和所有节点消息发布速度计算当前实例的得分,直至所有实例打分完毕。
[0011]优选的,基于历史一段时间内同一时刻发布同一消息类型的平均速度与所有实例前一时刻平均消息发布速度的比值与网速调整因子的乘积计算处理得分。
[0012]优选的,负载能力得分用于表示当前实例处理待发布消息的能力水平,取任一未打分的实例作为当前实例,基于当前实例的状态参数与发布待处理消息所需最低资源信息和待处理消息的消息紧急程度计算当前实例的能力得分,直至所有实例打分完毕。
[0013]优选的,能力得分为当前时刻当前实例CPU功耗、内存容量、历史一段时间内网络连接最小掉线时间分别与待处理消息所需最低CPU功耗、待处理消息所需最低内存容量、历史一段时间内所有实例网络连接平均掉线时间的比值之和。
[0014]优选的,根据各实例的得分计算实例得分区间;根据实例得分区间计算实例增设得分区间;根据实例增设得分区间筛选候选实例,候选实例为需增设虚拟实例的实例;根据候选实例计算虚拟实例的个数,计算各个虚拟实例的位置;在第一哈希环上插入各个虚拟实例,以获得第二哈希环。
[0015]本专利技术还提供一种基于消息的多实例负载均衡系统,系统包括多个实例终端,服务器,服务器中包括:获取模块,用于获取待发布的消息,确定消息的消息属性;构建模块,用于根据多实例建立第一哈希环;调整模块,用于根据消息属性给多实例中各实例打分,根据各实例的得分调整第一哈希环,获得第二哈希环;选择模块,用于根据待发布的消息主题计算待发布的消息的哈希值,基于待发布的消息的哈希值从第二哈希环中选择目标实例;发布模块:利用目标实例发布待发布的消息。
[0016]本专利技术提供的一种基于消息的多实例负载均衡方法和系统,相较于现有技术中顺序选择或随机选择的方式,一方面,本专利技术利用负载均衡思想从多个实例中选择目标实例进行消息发布,避免实例过载或闲置。另一方面,本专利技术能够根据待发布消息的类型、紧急程度选择更适合当前处理待发布消息的实例,优化了目标实例选择过程,选择过程中选择高分实例构建虚拟实例,使得第二哈希环上高分实例的数量多于低分实例,引导待发布消息选择更优的实例进行消息发布,实现了资源的优化。
[0017]进一步的,本专利技术提供的哈希环中首先通过待处理的任务对实例进行评价,与之相匹配的,为了使节点分布更加均匀,仅筛选得分较高的实例增设虚拟实例,从而在第二哈希环上,得分较高的实例节点多于得分较低的实例节点,增加了得分较高的实例节点被选中的概率,在保证节点分布均匀的同时引导待发布消息选择更适合处理该消息的实例,从
而提高待发布消息的处理速度。
附图说明
[0018]图1为实施例一提供的各实例在哈希环上的位置示意图;图2为实施例一提供的候选实例在哈希环上的位置示意图;图3为实施例一提供的插入虚拟节点后的哈希环示意图。
具体实施方式
[0019]下面结合附图对本申请实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。本领域普通技术人员可知,随着技术的发展和新场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
[0020]本申请的说明书和权利要求书及上述附图中的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,以便包含一系列单元的过程、方法、系统、产品或设备不必限于那些单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它单元。
[0021]实施例一本专利技术的第一实施方式涉及一种基于消息的多实例负载均衡方法,包括如下步骤:步骤S1:获取待发布的消息,确定消息的消息属性;本专利技术的基于消息的多实例负载均衡方法应用于基于MQTT架构的物联网系统中,一个实例代表一个客户端,MQTT架构的物联网系统包括多个客户端,即多实例和一个MQTT服务器。
[0022]物联网系统运行过本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于消息的多实例负载均衡方法,其特征在于,所述基于消息的多实例负载均衡方法具体包括:步骤S1:获取待发布的消息,确定消息的消息属性;步骤S2:根据多实例建立第一哈希环;步骤S3:根据消息属性给多实例中各实例打分,根据各实例的得分调整第一哈希环,获得第二哈希环;调整第一哈希环具体包括:根据各实例的得分确定候选实例,计算候选实例对应的虚拟实例的个数和位置,插入第一哈希环,各个候选实例对应的虚拟实例的个数不完全相同;步骤S4:根据待发布的消息的主题计算待发布的消息的哈希值,基于待发布的消息的哈希值从第二哈希环中选择目标实例;步骤S5:利用目标实例发布待发布的消息。2.根据权利要求1所述的基于消息的多实例负载均衡方法,其特征在于,第一哈希环为仅包含多实例的哈希环,计算多实例中各个实例的哈希值,根据哈希值找到各个实例在哈希环上的位置插入实例,以建立第一哈希环。3.根据权利要求2所述的基于消息的多实例负载均衡方法,其特征在于,构建哈希圆环,根据多实例中各个实例订阅的主题计算各个实例的哈希值,根据各个实例的哈希值将各个实例插入至哈希圆环中,获得第一哈希环。4.根据权利要求1所述的基于消息的多实例负载均衡方法,其特征在于,消息属性包括消息类型和消息紧急程度,根据消息属性给各实例打分,具体包括:根据消息类型计算各实例的针对当前消息类型的处理得分;根据消息紧急程度计算各实例的负载能力得分;基于各实例的处理得分和负载能力得分计算各实例的得分。5.根据权利要求4所述的基于消息的多实例负载均衡方法,其特征在于,处理得分用于表示当前实例发布同一消息类型的速度水平,取任一未打分的实例作为当前实例,基于当前实例历史消息发布速度和所有节点消息发布速度计算当前实例的得分,直至所有实例打分完毕。6....

【专利技术属性】
技术研发人员:周垤飞秦钢陈波韩鹏李业欣钱克成孙天威许飞
申请(专利权)人:杭州指令集智能科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1