面向实时流处理的负载均衡方法、电子设备及存储介质与流程

专利2022-06-29  74


本发明涉及工作站负载均衡技术领域,尤其涉及一种面向实时流处理的负载均衡方法、电子设备及存储介质。



背景技术:

随着监控对象、监控数据量日益巨量化,如何实时处理海量数据是最为核心的问题。我们面临的问题是必须依据数据消息做完整事务处理,而每个消息的块包括的监控指标数量存在巨大差异,从而导致并发数据处理负载不均衡,有的工作者处理超负荷宕机,有的工作者实际处理量非常少,浪费了大量cpu和内存的宝贵资源



技术实现要素:

为了克服现有技术的不足,本发明的目的之一在于提供一种面向实时流处理的负载均衡方法,其能按最小指标单元进行消息重分配,使并发的多个计算工作站之间的任务相当,实现多个并发工作站的数据处理负载均衡。

本发明的目的之二在于提供一种电子设备,其能按最小指标单元进行消息重分配,使并发的多个计算工作站之间的任务相当,实现多个并发工作站的数据处理负载均衡。

本发明的目的之三在于提供一种计算机可读存储介质,该存储介质中的程序运行时能实现按最小指标单元进行消息重分配,使并发的多个计算工作站之间的任务相当,实现多个并发工作站的数据处理负载均衡。

本发明的目的之一采用如下技术方案实现:

一种面向实时流处理的负载均衡方法,包括以下步骤:

使根消费者将原始消息按资源/子资源指标组进行切片以形成多个消息片,一个消息片包含多个资源/子资源指标消息;

将所述消息片汇总到消息池,当消息处理间隙时间达到预设时间段时或者消息池中的消息片总量达到第一预设阈值时,进行第一次消息池负载均衡计算以根据消息池中的消息片总量和根消费者数量进行动态平均分配;

将负载均衡好的消息片均匀返回给本次参与的所有根消费者,以使所述根消费者将所述消息片传递给业务消费者进而所述业务消费者将每个所述消息片按单个资源/子资源指标进行拆分以形成多个消息块;

将所拆分得到的所有消息块汇总到消息池,当消息处理间隙时间达到预设时间段时或者消息池中的消息块总量达到第二预设阈值时,进行第二次消息池负载均衡计算以根据消息块总量和业务消费者数量进行动态分配;

按照预设数量,将负载均衡好的消息按批量传送给对应的业务消费者进行处理。

进一步地,所述将负载均衡好的消息按批量传送给对应的业务消费者进行处理具体为:将负载均衡好的消息按批量上传至数据库,然后调度对应的业务消费者处理各自的消息。

进一步地,所述根据消息片总量和根消费者数量进行动态平均分配具体为:当消息池中的消息片总量超过第一预设阈值时,每个根消费者对应的消息片数量等于消息片总量除以根消费者数量;当消息池中的消息片总量未超过第一预设阈值而所述消息处理间隙时间已经达到预设时间段时,根据根消费者的工作性能分配对应数量的消息片以保障每个根消费者的工作性价比。

进一步地,所述第一预设阈值根据原始消息表的列数、根消费者个数以及业务消费者的最佳消费值设定;第二预设阈值根据业务消费者的个数以及业务消费者的最佳消费值设定。

进一步地,所述第一预设阈值为2万,所述第二预设阈值为200万。

进一步地,所述预设时间段为10秒。

进一步地,所述根据根消费者的工作性能分配对应数量的消息片具体为:确定根消费者的最优工作量,根据所述最优工作量逐一给各个根消费者分配对应数量的消息片直至消息片分配完为止。

进一步地,所述预设数量根据数据库的最佳存储方式来设定,所述预设数量设为1万个。

本发明的目的之二采用如下技术方案实现:

一种电子设备,包括处理器和存储器,所述存储器存储有可执行计算机程序,所述处理器可读取所述存储器的计算机程序并运行以实现如上所述的面向实时流处理的负载均衡方法。

本发明的目的之三采用如下技术方案实现:

一种计算机可读存储介质,所述计算机可读存储介质存储有可执行计算机程序,所述计算机程序运行时可实现如上所述的面向实时流处理的负载均衡方法。

相比现有技术,本发明的有益效果在于:

该面向实时流处理的负载均衡方法采用两次负载均衡,第一次是在按照资源/子资源指标组进行切片后均衡分配返回给根消费者,第二次是在按照单个指标来进行拆分后再均衡分配给各个业务消费者进行消息处理;该方法实现了按最小指标单元进行消息重分配,使并发的多个计算工作站之间的任务相当,实现多个并发工作站的数据处理负载均衡。

附图说明

图1为本发明提供的一种面向实时流处理的负载均衡方法的流程示意图;

图2为应用本发明提供的一种面向实时流处理的负载均衡方法的负载均衡实施过程示例图。

具体实施方式

下面,结合附图以及具体实施方式,对本发明做进一步描述,需要说明的是,在不相冲突的前提下,以下描述的各实施例之间或各技术特征之间可以任意组合形成新的实施例。

请参阅图1和图2,其为一种面向实时流处理的负载均衡方法的流程示意图,包括以下步骤:

s1、使根消费者将原始消息按资源/子资源指标组进行切片以形成多个消息片,一个消息片包含多个资源/子资源指标消息;

s2、将所述消息片汇总到消息池,,当消息处理间隙时间达到预设时间段时或者消息池中的消息片总量达到第一预设阈值时,进行第一次消息池负载均衡计算以根据消息池中的消息片总量和根消费者数量进行动态平均分配;

s3、将负载均衡好的消息片均匀返回给本次参与的所有根消费者,以使所述根消费者将所述消息片传递给业务消费者进而所述业务消费者将每个所述消息片按单个资源/子资源指标进行拆分以形成多个消息块;

s4、将所拆分得到的所有消息块汇总到消息池,当消息处理间隙时间达到预设时间段时或者消息池中的消息块总量达到第二预设阈值时,进行第二次消息池负载均衡计算以根据消息块总量和业务消费者数量进行动态分配;

s5、按照预设数量(该数值根据数据库最佳存储方式来设定,在本实施例中,所述预设数量设为1万个),将负载均衡好的消息按批量传送给对应的业务消费者进行处理。

该面向实时流处理的负载均衡方法采用两次负载均衡,第一次是在按照资源/子资源指标组进行切片后均衡分配返回给根消费者,第二次是在按照单个指标来进行拆分后再均衡分配给各个业务消费者进行消息处理;该方法实现了按最小指标单元进行消息重分配,使并发的多个计算工作站之间的任务相当,实现多个并发工作站的数据处理负载均衡。

需要说明的是,按资源/子资源指标组进行切片即为将原始消息表按行进行切片,按单个资源/子资源指标进行拆分即为将每个消息片(原始消息表中的一行)按列进行切块。

作为一种优选的实施方式,所述将负载均衡好的消息按批量传送给对应的业务消费者进行处理具体为:将负载均衡好的消息按批量进行数据库操作,以将消息批量上传至数据库,然后调度对应的业务消费者处理各自的消息。这样可以保障每次并行的work节点都在进行等量的指标处理。比如数据库1万个一批存入是最佳存储方式,那么以1万个消息为一批,批量上传至数据库,在这个数量内也是优先保证消费者1万个消息一消费。

作为一种优选的实施方式,所述根据消息片总量和根消费者数量进行动态平均分配具体为:当消息池中的消息片总量超过预设阈值时,每个根消费者对应的消息片数量等于消息片总量除以根消费者数量;当消息池中的消息片总量未超过第一预设阈值而所述消息处理间隙时间已经达到预设时间段时,根据根消费者的工作性能分配对应数量的消息片以保障每个根消费者的工作性价比。具体地,所述第一预设阈值根据原始消息表的列数、根消费者个数以及业务消费者的最佳消费值设定;第二预设阈值根据业务消费者的个数以及业务消费者的最佳消费值设定;在本实施例中,根消费者有20个,消息一般列数10列,业务消费最佳消费是1万个,那么第一预设阈值就是2万个,2万个以内消息总量,就尽量保证每个根消费者拿回的是1千个消息,余下的给一个根消费者拿回;超过2万个就每2万个一批轮回。也就是说,所述第一预设阈值设为2万;类似地,所述第二预设阈值设为200万。此外,所述预设时间段设为10秒。

此外,所述根据根消费者的工作性能分配对应数量的消息片具体为:确定根消费者的最优工作量,根据所述最优工作量逐一给各个根消费者分配对应数量的消息片直至消息片分配完为止。通过该方式,使得工作中的每个根消费者都能处于较优的工作状态,避免出现大量根消费者都处于工作中但各自的处理量都非常少,造成资源的浪费。

本发明还提供了一种电子设备,包括处理器和存储器,所述存储器存储有可执行计算机程序,所述处理器可读取所述存储器的计算机程序并运行以实现如上所述的面向实时流处理的负载均衡方法。

本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有可执行计算机程序,所述计算机程序运行时可实现如上所述的面向实时流处理的负载均衡方法。

该计算机可读存储介质存储有计算机程序,本发明的方法如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在该计算机存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机存储介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机存储介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机存储介质不包括电载波信号和电信信号。

上述实施方式仅为本发明的优选实施方式,不能以此来限定本发明保护的范围,本领域的技术人员在本发明的基础上所做的任何非实质性的变化及替换均属于本发明所要求保护的范围。


技术特征:

1.一种面向实时流处理的负载均衡方法,其特征在于,包括以下步骤:

使根消费者将原始消息按资源/子资源指标组进行切片以形成多个消息片,一个消息片包含多个资源/子资源指标消息;

将所述消息片汇总到消息池,当消息处理间隙时间达到预设时间段时或者消息池中的消息片总量达到第一预设阈值时,进行第一次消息池负载均衡计算以根据消息池中的消息片总量和根消费者数量进行动态平均分配;

将负载均衡好的消息片均匀返回给本次参与的所有根消费者,以使所述根消费者将所述消息片传递给业务消费者进而所述业务消费者将每个所述消息片按单个资源/子资源指标进行拆分以形成多个消息块;

将所拆分得到的所有消息块汇总到消息池,当消息处理间隙时间达到预设时间段时或者消息池中的消息块总量达到第二预设阈值时,进行第二次消息池负载均衡计算以根据消息块总量和业务消费者数量进行动态分配;

按照预设数量,将负载均衡好的消息按批量传送给对应的业务消费者进行处理。

2.如权利要求1所述的面向实时流处理的负载均衡方法,其特征在于,所述将负载均衡好的消息按批量传送给对应的业务消费者进行处理具体为:将负载均衡好的消息按批量上传至数据库,然后调度对应的业务消费者处理各自的消息。

3.如权利要求1所述的面向实时流处理的负载均衡方法,其特征在于,所述根据消息片总量和根消费者数量进行动态平均分配具体为:当消息池中的消息片总量达到第一预设阈值时,每个根消费者对应的消息片数量等于消息片总量除以根消费者数量;当消息池中的消息片总量未超过第一预设阈值而所述消息处理间隙时间已经达到预设时间段时,根据根消费者的工作性能来分配对应数量的消息片以保障每个根消费者的工作性价比。

4.如权利要求3所述的面向实时流处理的负载均衡方法,其特征在于,所述第一预设阈值根据原始消息表的列数、根消费者个数以及业务消费者的最佳消费值设定;第二预设阈值根据业务消费者的个数以及业务消费者的最佳消费值设定。

5.如权利要求4所述的面向实时流处理的负载均衡方法,其特征在于,所述第一预设阈值为2万,所述第二预设阈值为200万。

6.如权利要求3所述的面向实时流处理的负载均衡方法,其特征在于,所述预设时间段为10秒。

7.如权利要求3所述的面向实时流处理的负载均衡方法,其特征在于,所述根据根消费者的工作性能分配对应数量的消息片具体为:确定根消费者的最优工作量,根据所述最优工作量逐一给各个根消费者分配对应数量的消息片直至消息片分配完为止。

8.如权利要求1所述的面向实时流处理的负载均衡方法,其特征在于,所述预设数量根据数据库的最佳存储方式来设定,所述预设数量设为1万个。

9.一种电子设备,其特征在于,包括处理器和存储器,所述存储器存储有可执行计算机程序,所述处理器可读取所述存储器的计算机程序并运行以实现如权利要求1至8任一项所述的面向实时流处理的负载均衡方法。

10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有可执行计算机程序,所述计算机程序运行时可实现如权利要求1至8任一项所述的面向实时流处理的负载均衡方法。

技术总结
本发明公开了一种面向实时流处理的负载均衡方法、电子设备及存储介质,该方法为:使根消费者将原始消息按资源/子资源指标组进行切片并汇总到消息池,当消息处理间隙时间达到预设时间段时或者消息片总量达到第一预设阈值时,进行第一次消息池负载均衡计算后返回给根消费者;使根消费者将消息片传递给业务消费者按单个资源/子资源指标拆分消息片并汇总到消息池,当消息处理间隙时间达到预设时间段时或者消息块总量达到第二预设阈值时,进行第二次消息池负载均衡计算后批量传送给对应的业务消费者进行处理。该方法能按最小指标单元进行消息重分配,使并发的多个计算工作站之间的任务相当,实现多个并发工作站的数据处理负载均衡。

技术研发人员:詹岭;刘晓华;蔡幼忠
受保护的技术使用者:广州赢领信息科技有限公司
技术研发日:2019.12.02
技术公布日:2020.06.09

转载请注明原文地址: https://bbs.8miu.com/read-28170.html

最新回复(0)