System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 消费任务均衡分配方法、装置、设备及存储介质制造方法及图纸_技高网

消费任务均衡分配方法、装置、设备及存储介质制造方法及图纸

技术编号:40512153 阅读:11 留言:0更新日期:2024-03-01 13:28
本发明专利技术属于数据处理技术领域,公开一种消费任务均衡分配方法;该方法包括:从消费任务表中得到初始消费任务集合,清洗初始消费任务集合中的数据,得到正在被消费任务集合;根据topic注册表和消费任务表得到正在被消费任务集合中各个实例的消费负载;根据消费负载、实例注册表确定正在被消费任务集合中的超负载实例,得到超负载消费任务集合;根据各个超负载实例正在消费的topic信息确定超负载平衡策略,分配各个实例的消费任务;本发明专利技术通过针对不同的topic设置不同的权重值表征实例的消费压力,对每个实例的消费任务进行计算并基于每个实例消费的topic信息进行实例负载分摊,实现消费压力的均衡分配,提高资源最大利用率。

【技术实现步骤摘要】

本专利技术涉及数据处理,尤其涉及一种消费任务均衡分配方法、装置、设备及存储介质


技术介绍

1、kafka是目前世界上市场占有率最大的消息队列/消息中间件,被广泛地应用在分布式系统下数据处理,转换,清洗等工作中。分布式系统下,某个服务消费kafka生产的消息时,会消费若干不同的kafka topic(简称topic)。不同的topic,代表了不同的上游业务数据。业务不同,则不同topic对应的分区数,每秒的消息量,消息的大小都会不同。而单个服务是若干相同规格实例组成的集群,最大负载是相同的,即能够处理的最大消息量是相同的;若干个topic分配给集群下若干实例进行消费时,如果仅是简单地平均分配topic到每个实例下,使某个实例单独消费某个topic的所有分区,或者每个实例全量消费所有的topic,随机消费topic下的某几个分区。

2、目前简单的分配方式,会出现集群下实例之间消费的消息量不同,不同实例之间工作负载有很大差距的情况。有的实例根本不会消费到消息,有的实例则会消费巨量消息,造成宕机,严重破坏了服务集群的高可用性,也大大降低了服务集群的消息处理效率,无法实现对实例最大的使用率。


技术实现思路

1、本专利技术的主要目的在于提供一种消费任务均衡分配方法、装置、设备及存储介质,旨在解决现有技术对消费任务进行分配时容易产生单个处理器数据量不均衡的技术问题。

2、为实现上述目的,本专利技术提供了一种消费任务均衡分配方法,所述方法包括以下步骤:

3、从消费任务表中得到初始消费任务集合,对所述初始消费任务集合中的数据进行清洗,得到正在被消费任务集合;

4、根据topic注册表和消费任务表得到正在被消费任务集合中各个实例的消费负载;

5、根据所述消费负载以及实例注册表确定所述正在被消费任务集合中的超负载实例,得到超负载消费任务集合;

6、根据所述超负载消费任务集合中各个超负载实例正在消费的topic信息确定超负载平衡策略,根据所述超负载平衡策略对所述消费任务表中各个实例的消费任务进行分配。

7、可选地,所述根据topic注册表和消费任务表得到正在被消费任务集合中各个实例的消费负载,包括:

8、将正在被消费任务集合中的各个topic名称与topic注册表中的各个topic名称进行匹配,得到正在被消费任务集合中的各个topic的topic权重和分区数;

9、根据所述topic权重和分区数得到各个topic的分区平均权重;

10、根据消费任务表得到正在被消费任务集合中各个实例正在消费的各个topic的topic分区;

11、根据各个topic的分区平均权重以及topic分区得到各个实例的消费负载。

12、可选地,所述根据所述超负载消费任务集合中各个超负载实例正在消费的topic信息确定超负载平衡策略,包括:

13、根据所述消费任务表得到目标实例消费的topic,将所述目标实例消费的topic作为参考topic;

14、根据topic注册表和消费任务表确定各个参考topic的分区数和消费所述参考topic各个topic分区的实例总数,将所述实例总数小于所述分区数的参考topic,作为目标topic;

15、根据实例注册表得到所述目标实例的最大负载,根据所述最大负载得到所述目标实例的超出权重;

16、遍历全部实例,将全部实例中空余权重大于所述超出权重且没有处理所述目标topic任一分区的实例作为新增实例;

17、基于所述新增实例重新分配所述目标实例的消费任务,判断基于所述新增实例重新分配所述目标实例的消费任务后所述目标实例是否超负载;

18、若基于所述新增实例重新分配所述目标实例的消费任务后所述目标实例没有超负载,则基于所述新增实例得到超负载平衡策略,根据所述超负载平衡策略对所述消费任务表中各个实例的消费任务进行分配。

19、可选地,所述判断基于所述新增实例重新分配所述目标实例的消费任务后所述目标实例是否超负载之后,还包括:

20、若所述基于所述新增实例重新分配所述目标实例的消费任务后所述目标实例超负载,则根据所述参考topic在目标实例中被消费的权重按从小到大顺序进行排列,得到参考topic权重顺序表;

21、将参考topic权重顺序表中权重大于所述目标实例超出权重的最小topic作为目标待选topic;

22、遍历全部实例,得到空余权重大于所述目标待选topic的权重且没有处理所述目标待选topic其他分区的实例,作为参考实例;

23、将所述目标待选topic在所述目标实例中的topic分区全部转移至所述参考实例;

24、判断目标待选topic在所述目标实例中的topic分区全部转移至所述参考实例后目标实例是否超负载;

25、若所述目标实例没有超负载,则基于所述参考实例得到超负载平衡策略,根据所述超负载平衡策略对所述消费任务表中各个实例的消费任务进行分配。

26、可选地,所述判断目标待选topic在所述目标实例中的topic分区全部转移至所述参考实例后目标实例的当前权重是否超负载之后,还包括:

27、若目标待选topic在所述目标实例中的topic分区全部转移至所述参考实例后目标实例超负载,则基于目标实例消费的各个topic分区的权重对各个topic分区进行组合,得到多个参考权重组合以及对应的组合权重;

28、遍历全部实例,将存在空余权重的实例作为预选实例;

29、从多个参考权重组合中筛选组合权重大于目标实例超出权重的参考权重组合,得到预选组合;

30、根据所述预选实例和所述预选组合得到超负载平衡策略,根据所述超负载平衡策略对所述消费任务表中各个实例的消费任务进行分配。

31、可选地,所述从消费任务表中得到初始消费任务集合,对所述初始消费任务集合中的数据进行清洗,得到正在被消费任务集合,包括:

32、从消费任务表提取各个消费任务的topic的名称、topic被分配消费的topic分区和各个实例的实例状态、实例名称、实例ip、消费线程心跳时间戳、当前状态得到初始消费任务集合;

33、将所述初始消费任务集合中实例ip与实例注册表中各个实例ip进行匹配,删除所述初始消费任务集合中实例ip与实例注册表中各个实例ip匹配失败的消费任务,得到参考消费任务集合;

34、删除所述参考消费任务集合中状态不是正在被消费状态的消费任务,得到正在被消费任务集合。

35、可选地,所述从消费任务表中得到初始消费任务集合之前,还包括:

36、获取各个topic的名称、总权重以及分区数,根据所述各个topic的名称、总权重以及分区数构建topic注册表;

37、获取各个实例的名称、ip、最大负载、实例心跳时间戳,根据所述各个实例的名本文档来自技高网...

【技术保护点】

1.一种消费任务均衡分配方法,其特征在于,所述消费任务均衡分配方法包括:

2.如权利要求1所述的消费任务均衡分配方法,其特征在于,所述根据topic注册表和消费任务表得到正在被消费任务集合中各个实例的消费负载,包括:

3.如权利要求1所述的消费任务均衡分配方法,其特征在于,所述根据所述超负载消费任务集合中各个超负载实例正在消费的topic信息确定超负载平衡策略,包括:

4.如权利要求3所述的消费任务均衡分配方法,其特征在于,所述判断基于所述新增实例重新分配所述目标实例的消费任务后所述目标实例是否超负载之后,还包括:

5.如权利要求4所述的消费任务均衡分配方法,其特征在于,所述判断目标待选topic在所述目标实例中的topic分区全部转移至所述参考实例后目标实例的当前权重是否超负载之后,还包括:

6.如权利要求1所述的消费任务均衡分配方法,其特征在于,所述从消费任务表中得到初始消费任务集合,对所述初始消费任务集合中的数据进行清洗,得到正在被消费任务集合,包括:

7.如权利要求1-6中任一项所述的消费任务均衡分配方法,其特征在于,所述从消费任务表中得到初始消费任务集合之前,还包括:

8.一种消费任务均衡分配装置,其特征在于,所述消费任务均衡分配装置包括:

9.一种消费任务均衡分配设备,其特征在于,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的消费任务均衡分配程序,所述消费任务均衡分配程序配置为实现如权利要求1至7中任一项所述的消费任务均衡分配方法。

10.一种存储介质,其特征在于,所述存储介质上存储有消费任务均衡分配程序,所述消费任务均衡分配程序被处理器执行时实现如权利要求1至7任一项所述的消费任务均衡分配方法。

...

【技术特征摘要】

1.一种消费任务均衡分配方法,其特征在于,所述消费任务均衡分配方法包括:

2.如权利要求1所述的消费任务均衡分配方法,其特征在于,所述根据topic注册表和消费任务表得到正在被消费任务集合中各个实例的消费负载,包括:

3.如权利要求1所述的消费任务均衡分配方法,其特征在于,所述根据所述超负载消费任务集合中各个超负载实例正在消费的topic信息确定超负载平衡策略,包括:

4.如权利要求3所述的消费任务均衡分配方法,其特征在于,所述判断基于所述新增实例重新分配所述目标实例的消费任务后所述目标实例是否超负载之后,还包括:

5.如权利要求4所述的消费任务均衡分配方法,其特征在于,所述判断目标待选topic在所述目标实例中的topic分区全部转移至所述参考实例后目标实例的当前权重是否超负载之后,还包括:

6.如权利要求1所述...

【专利技术属性】
技术研发人员:张文梁杨勇
申请(专利权)人:招商银行股份有限公司
类型:发明
国别省市:

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

1