一种基于镜像队列的主队列负载平衡方法技术

技术编号:26259080 阅读:38 留言:0更新日期:2020-11-06 17:53
一种基于镜像队列的主队列负载平衡方法,设置了动态平衡主队列的机制,通过自动获取节点中的主队列数量,并根据设定的规则主动迁移主队列;本发明专利技术能够自主发现节点中主队列的分布数量,并将主队列分布数量较多的节点中的主队列平滑迁移至主队列分布数量较少的节点中,可以完全覆盖所有主队列负载不均衡的场景;本发明专利技术的主队列平衡方法适用于节点宕机恢复、新节点加入和部分消息队列使用完释放后造成的压力不均衡现象,可以自动均衡消息队列集群所在节点上的主队列分布。

【技术实现步骤摘要】
一种基于镜像队列的主队列负载平衡方法
本专利技术涉及数据处理领域,尤其涉及一种基于镜像队列的主队列负载平衡方法。
技术介绍
在目前的RabbitMQ集群的镜像队列模式下,每一个消息队列由一个主队列和若干个从队列构成;正常情况下,由主队列提供消息服务,从队列备份消息,如果有一个消息队列的主队列存在异常,消息队列集群会从其他节点中选举出新的主队列;初始情况下,一个节点有较少数量的主队列和相对较多的从队列,如果有新的消息队列加入集群,则该消息队列的主队列自动加入到当前主队列最少的节点上,其从队列加入到其他节点上。但是上述镜像队列模式仍存在以下问题,当有节点存在异常时,例如宕机或节点重启的场景下,该节点的主队列自动分散至正常的节点上,但该节点恢复至正常状态后,原有节点的主队列仍旧分布于当前的节点上,不会自动迁移回复至原有节点;另外,在扩容状态下,有新的节点加入消息队列集群时,原有节点上主队列数量较多的节点上的消息队列并不能分散到新的节点上。这会使的在较长时间内并不能分摊运行压力。现有技术中的镜像队列模式下,这能自动均衡新生成的主本文档来自技高网...

【技术保护点】
1.一种基于镜像队列的主队列负载平衡方法,其特征在于,包括以下步骤:/nS1、消息队列中设有主队列和从队列,所述消息队列均存放于节点中,存放有所述消息队列的所述节点构成消息队列集群;/nS2、获取所述消息队列集群中的节点信息,通过命令获取所述消息队列中的节点构成,并统计出每个所述节点中存放的所述主队列的数量;/nS3、根据步骤S2中统计的所述节点的总数以及所述主队列的总数,计算出所述节点中期望存放的所述主队列的最大数量;/nS4、从步骤S2中选出存放主队列数量最大的节点和存放主队列数量最小的节点,将所述存放主队列数量最大的节点中的所述主队列的数量与步骤S3中的计算出期望存放的所述主队列的最大数...

【技术特征摘要】
1.一种基于镜像队列的主队列负载平衡方法,其特征在于,包括以下步骤:
S1、消息队列中设有主队列和从队列,所述消息队列均存放于节点中,存放有所述消息队列的所述节点构成消息队列集群;
S2、获取所述消息队列集群中的节点信息,通过命令获取所述消息队列中的节点构成,并统计出每个所述节点中存放的所述主队列的数量;
S3、根据步骤S2中统计的所述节点的总数以及所述主队列的总数,计算出所述节点中期望存放的所述主队列的最大数量;
S4、从步骤S2中选出存放主队列数量最大的节点和存放主队列数量最小的节点,将所述存放主队列数量最大的节点中的所述主队列的数量与步骤S3中的计算出期望存放的所述主队列的最大数量进行对比;当所述节点中的所述主队列的数量大于期望存放的所述主队列的最大数量时,从所述存放主队列数量最大的节点中随机选择一个所述主队列迁移至所述存放主队列数量最小的节点中;否则,结束本次平衡;
S5、所述消息队列集群经过步骤S4中的主队列迁移后,重新进行步骤S2至步骤S4的循环,直至步骤S4中的对比结果为存放主队列最大数量的节点中的主队列的数量小于或等于期望存放的最大数量,结束所述消息队列集群的负载平衡。


2.根据权利要求1所述的基于镜像队列的主队列负载平衡方法,其特征在于,步骤S3节点中期望存放的主队列的最大数量的计算方法为:
期望存放主队列最大数量=(主...

【专利技术属性】
技术研发人员:马博瞿洪桂张男男
申请(专利权)人:北京中电兴发科技有限公司
类型:发明
国别省市:北京;11

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

1