重平衡方法、装置、设备、介质及产品与流程

xiaoxiao29天前  22


本申请涉及数据处理,特别是涉及一种重平衡方法、装置、设备、介质及产品。


背景技术:

1、在高吞吐量的分布式发布订阅消息系统(kafka)中,消费者组是处理消息流的关键组件,它们通过服务节点(broker)进行协调以实现负载均衡和故障恢复。当消费者组面临某些变化时,如消费者成员的增加或减少、订阅主题的调整等,就需要进行重平衡操作。重平衡是指在消费者组状态发生变化时,服务节点(broker)自动触发的一个过程,旨在重新分配消息分区给消费者,以保持系统的负载均衡和稳定性。

2、然而,传统的重平衡机制在执行过程中会导致消费组中的所有消费者暂时处于不可用状态,这严重影响了系统的业务吞吐量和处理时延,导致kafka系统的消息处理的效率下降。


技术实现思路

1、本申请提供的一种重平衡方法、装置、设备、介质及产品,能够提高kafka系统的消息处理的效率。

2、第一方面,本申请实施例提供一种重平衡方法,应用于kafka集群,方法包括:

3、在创建第一主题的情况下,若第一主题的预设分区数大于预设大分区阈值,则将第一主题的第一分区进行拆分得到多个第二分区,预设分区数用于确定第一主题的第一分区的分区数量,一个第一分区对应多个第二分区,第二分区的分区数量大于第一分区的分区数量;一个消费组消费至少一个第二分区对应的消息;

4、在第一消费组接收到是否进行重平衡请求的情况下,获取第一消费组负责的所有第三分区在预设时间内的消费情况,第二分区包括第三分区;

5、根据消费情况,确定所有第三分区中参与重平衡的目标分区;

6、对第一消费组和目标分区进行重平衡。

7、第二方面,本申请提供一种重平衡装置,应用于kafka集群,该装置包括:

8、拆分模块,用于在创建第一主题的情况下,若所述第一主题的预设分区数大于预设大分区阈值,则将所述第一主题的第一分区进行拆分得到多个第二分区,所述预设分区数用于确定所述第一主题的第一分区的分区数量,一个所述第一分区对应多个第二分区,所述第二分区的分区数量大于所述第一分区的分区数量;一个消费组消费至少一个第二分区对应的消息;

9、获取模块,用于在第一消费组收到是否进行重平衡请求的情况下,获取所述第一消费组负责的所有第三分区在预设时间内的消费情况,所述第二分区包括所述第三分区;

10、确定模块,用于根据所述消费情况,确定所述所有第三分区中参与重平衡的目标分区;

11、重平衡模块,用于对所述第一消费组和所述目标分区进行重平衡。

12、第三方面,本申请实施例提供了一种电子设备,该电子设备包括:处理器以及存储有计算机程序指令的存储器;

13、处理器执行计算机程序指令时实现如第一方面中任意一个实施例中的重平衡方法。

14、第四方面,本申请实施例提供了一种计算机存储介质,计算机存储介质上存储有计算机程序指令,计算机程序指令被处理器执行时实现如第一方面中任意一个实施例中的重平衡方法。

15、第五方面,本申请实施例提供了一种计算机程序产品,计算机程序产品中的指令由电子设备的处理器执行时,使得电子设备执行实现如上述第一方面中任意一个实施例中的重平衡方法。

16、在本申请实施例提供的一种重平衡方法、装置、设备、介质及产品中,在创建第一主题时,如果预设分区数超过了一个预设的大分区阈值,本申请回将原始的第一分区拆分为多个更小的第二分区。这种分区拆分策略允许更精细的负载均衡,因为更多的消费者能够并行处理消息,从而提高了系统的整体吞吐量。更进一步地,当第一消费者组面临重平衡请求时,本申请不仅仅简单地暂停所有消费者并重新分配分区,而是首先收集并分析消费者组在预设时间内负责的所有分区的消费情况。这种基于消费情况的数据驱动策略使得系统能够更准确地识别出哪些分区需要参与重平衡,以及哪些消费者最适合处理这些分区。这种精确的重平衡策略避免了不必要的消费者暂停,从而减少了系统的不可用时间,提高了消息处理的实时性和效率。



技术特征:

1.一种重平衡方法,其特征在于,应用于kafka集群,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述kafka集群包括多个逻辑集群,所述多个逻辑集群包括主集群和多个扩展集群;

3.根据权利要求1所述的方法,其特征在于,所述根据所述消费情况,确定所述所有第三分区中参与重平衡的目标分区,包括:

4.根据权利要求2所述的方法,其特征在于,所述方法还包括:

5.根据权利要求2所述的方法,其特征在于,在所述对所述第一消费组和所述目标分区进行重平衡之后,所述方法还包括:

6.根据权利要求1所述的方法,其特征在于,在所述在创建第一主题的情况下,若所述第一主题的预设分区数大于预设大分区阈值,则将所述第一主题的第一分区进行拆分得到多个第二分区之前,所述方法还包括:

7.一种重平衡装置,其特征在于,应用于kafka集群,所述装置包括:

8.一种电子设备,其特征在于,所述设备包括:处理器以及存储有计算机程序指令的存储器;

9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现如权利要求1-6任意一项所述的重平衡方法。

10.一种计算机程序产品,其特征在于,所述计算机程序产品中的指令由电子设备的处理器执行时,使得所述电子设备执行如权利要求1-6任意一项所述的重平衡方法。


技术总结
本申请提供了一种重平衡方法、装置、设备、介质及产品,在创建第一主题的情况下,若第一主题的预设分区数大于预设大分区阈值,则将第一主题的第一分区进行拆分得到多个第二分区,预设分区数用于确定第一主题的第一分区的分区数量,一个第一分区对应多个第二分区,第二分区的分区数量大于第一分区的分区数量;一个消费组消费至少一个第二分区对应的消息;在第一消费组接收到是否进行重平衡请求的情况下,获取第一消费组负责的所有第三分区在预设时间内的消费情况,第二分区包括第三分区;根据消费情况,确定所有第三分区中参与重平衡的目标分区;对第一消费组和目标分区进行重平衡。本申请实施例能够提高kafka系统的消息处理的效率。

技术研发人员:崔凯峰,赵淳,严国涛
受保护的技术使用者:中移动信息技术有限公司
技术研发日:
技术公布日:2024/9/23

最新回复(0)