消息主题的处理方法、装置、计算机设备和可读存储介质制造方法及图纸

技术编号:27974942 阅读:20 留言:0更新日期:2021-04-06 14:09
本申请涉及数据处理技术领域,提供了一种消息主题的处理方法、装置、计算机设备和可读存储介质。该方法包括:设置对应消息队列的偏移量组和至少两个消费组;将消息队列中的消息主题分配至消费组,其中,若消费组被分配消息主题时,消费组为工作消费组,若消费组未被分配消息主题时,消费组为备用消费组;当工作消费组被分配至少两个消息主题,且其中的消息主题中断时,将中断的消息主题分配至备用消费组,以使备用消费组根据偏移量组中对应的偏移量,重启中断的消息主题。通过本申请,能够在无限拉起挂掉的消息主题,以保证程序稳定消费的同时,避免影响同一消息组的其他消息主题的消费。

【技术实现步骤摘要】
消息主题的处理方法、装置、计算机设备和可读存储介质
本申请涉及数据处理
,尤其涉及一种消息主题的处理方法、装置、计算机设备和可读存储介质。
技术介绍
Kafka是一种分布式发布订阅消息系统,基于其高吞吐量的数据处理能力,目前使用非常广泛。但专利技术人研究发现,目前kafka提供消费组实现多个线程同时消费一个或多个消息主题时,当其中一个消息主题有问题挂掉时,会触发一次均衡导致线程重新分配,而在一些不稳定的场景下,需要保证程序稳定消费,需要将挂掉的线程重新拉起,这样又会发生一次线程重新分配,均会影响其他主题的正常消费。如果无限拉起挂掉的消息主题,则会导致当前消费组一直处于均衡中,同组的其他消息主题消费完全不可用。例如,当消费组同时订阅topic1、topic2、topic3共三个消息主题,若topic3挂掉,则将会对topic1和topic2重新分配线程,当无限重启topic3时,如果持续重启失败,会导致topic1和topic2同时处于不可用的状态。因此,如何在无限拉起挂掉的消息主题,以保证程序稳定消费的同时,避免影响同一消息组的其他消息主题的消费,成为本领域亟需解决的技术问题。
技术实现思路
本申请的目的是提供一种消息主题的处理方法、装置、计算机设备和可读存储介质,用于解决现有技术中的上述技术问题。一方面,为实现上述目的,本申请提供了一种消息主题的处理方法。该消息主题的处理方法包括:设置对应消息队列的偏移量组和至少两个消费组,其中,所述偏移量组用于记录所述消息队列中各消息主题的偏移量,所述消费组包括若干线程,用于消费所述消息主题并更新所述偏移量;将所述消息队列中的消息主题分配至所述消费组,其中,若所述消费组被分配所述消息主题时,所述消费组为工作消费组,若所述消费组未被分配所述消息主题时,所述消费组为备用消费组;当所述工作消费组被分配至少两个所述消息主题,且其中的所述消息主题中断时,将中断的所述消息主题分配至所述备用消费组,以使所述备用消费组根据所述偏移量组中对应的偏移量,重启所述中断的消息主题。进一步地,所述消息主题的处理方法还包括:设置对应各个所述消费组的主题分配记录,其中,所述主题分配记录包括各个所述消费组被分配的所述消息主题;将所述中断的消息主题分配至所述备用消费组的步骤包括:根据所述主题分配记录中查找所述备用消费组,并将所述中断的消息主题分配至查找到的所述备用消费组。进一步地,所述消息主题的处理方法还包括:设置对应所述消费组的线程信息;将所述中断的消息主题分配至查找到的所述备用消费组的步骤包括:当根据所述主题分配记录查找到至少两个所述备用消费组时,获取各个所述备用消费组对应的线程信息;根据所述线程信息在各个所述备用消费组中,确定出与所述中断的消息主题适配的备用消费组。进一步地,所述线程信息包括所述消费组的线程数量和单线程消费速率阈值,根据所述线程信息在各个所述备用消费组中,确定出与所述中断的消息主题适配的备用消费组的步骤包括:获取所述偏移量组中所述中断的消息主题的历史偏移量;根据所述历史偏移量计算所述中断的消息主题的数据流量;以及根据所述线程数量、所述单线程消费速率阈值和所述中断的消息主题的数据流量确定出与所述中断的消息主题适配的备用消费组。进一步地,所述消息主题的处理方法还包括:当根据所述主题分配记录查找不到所述备用消费组时,在各个所述工作消费组中确定两个所述工作消费组;针对所述两个工作消费组,将其中一个所述工作消费组的消息主题分配至另一个所述工作消费组,以得到新的所述备用消费组;将所述中断的消息主题分配至新的所述备用消费组。进一步地,所述线程信息还包括线程空闲时间,所述消息主题的处理方法还包括:每间隔检查周期,根据所述偏移量组计算所述工作消费组的数据流量,根据所述单线程消费速率阈值、所述工作消费组的数据流量和所述检查周期,计算所述工作消费组对应的目标线程量;比较所述目标线程量与所述工作消费组对应的线程数量;当所述线程数量小于或等于所述目标线程量时,将所述线程空闲时间置为0;当所述线程数量大于所述目标线程量时,将所述线程空闲时间增加一个所述检查周期;在各个所述工作消费组中确定两个所述工作消费组的步骤包括:在各个所述工作消费组中,查找所述线程空闲时间最大的两个消费工作组。进一步地,根据所述偏移量组计算所述工作消费组的数据流量的步骤包括:从所述偏移量组中获取所述消息主题对应的偏移量;根据所述偏移量计算前一个所述检查周期内的偏移量增量;根据所述工作消费组分配的各个所述消息主题对应的偏移量增量,计算所述工作消费组对应的总偏移量增量;根据所述总偏移量增量和所述检查周期计算所述工作消费组的数据流量;进一步地,采用以下公式根据所述单线程消费速率阈值、所述工作消费组的数据流量和所述检查周期,计算所述工作消费组对应的目标线程量:nt=ceil(cs*p/ms),其中,nt为所述目标线程量,cs为所述工作消费组的数据流量,p为所述检查周期,ms为所述单线程消费速率阈值,ceil为向下取整函数。另一方面,为实现上述目的,本申请提供了一种消息主题的处理装置。该线程分配装置包括:第一设置模块,用于设置对应消息队列的偏移量组和至少两个消费组,其中,所述偏移量组用于记录所述消息队列中各消息主题的偏移量,所述消费组包括若干线程,用于消费所述消息主题并更新所述偏移量;第一分配模块,用于将所述消息队列中的消息主题分配至所述消费组,其中,若所述消费组被分配所述消息主题时,所述消费组为工作消费组,若所述消费组未被分配所述消息主题时,所述消费组为备用消费组;第二分配模块,用于当所述工作消费组被分配至少两个所述消息主题,且其中的所述消息主题中断时,将中断的所述消息主题分配至所述备用消费组,以使所述备用消费组根据所述偏移量组中对应的偏移量,重启所述中断的消息主题。又一方面,为实现上述目的,本申请还提供一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,该处理器执行计算机程序时实现上述方法的步骤。又一方面,为实现上述目的,本申请还提供计算机可读存储介质,包括存储数据区和存储程序区,存储数据区存储根据区块链节点的使用所创建的数据,存储程序区存储有计算机程序,其中,该计算机程序被处理器执行时实现上述方法的步骤。本申请提供的消息主题的处理方法、装置、计算机设备和可读存储介质,除了设置对应消息队列的至少两个消费组之外,还设置有对应消息队列的偏移量组,该偏移量组用于记录消息队列中各消息主题的偏移量,消费组的若干线程用于消费消息主题并更新偏移量,在将消息队列中的消息主题分配至消费组之后,当有消息主题中断时,将中断的消息主题分配至未被分配消息主题的备用消费组,以使该备用消费组根据偏移量组中对应的偏移量,重启中断的消息主题,避免了该重启过程对与中断的消息主题处于同一消费组的其他消息主题的影响,同时,中断的消息主题可在新的消费组中无限重启,并且可在重启后续断点位置继续进行数据消费,综上,通过本申请,既能够无限拉起挂掉的消息主题,以保本文档来自技高网...

【技术保护点】
1.一种消息主题的处理方法,其特征在于,包括:/n设置对应消息队列的偏移量组和至少两个消费组,其中,所述偏移量组用于记录所述消息队列中各消息主题的偏移量,所述消费组包括若干线程,用于消费所述消息主题并更新所述偏移量;/n将所述消息队列中的消息主题分配至所述消费组,其中,若所述消费组被分配所述消息主题时,所述消费组为工作消费组,若所述消费组未被分配所述消息主题时,所述消费组为备用消费组;/n当所述工作消费组被分配至少两个所述消息主题,且其中的所述消息主题中断时,将中断的所述消息主题分配至所述备用消费组,以使所述备用消费组根据所述偏移量组中对应的偏移量,重启所述中断的消息主题。/n

【技术特征摘要】
1.一种消息主题的处理方法,其特征在于,包括:
设置对应消息队列的偏移量组和至少两个消费组,其中,所述偏移量组用于记录所述消息队列中各消息主题的偏移量,所述消费组包括若干线程,用于消费所述消息主题并更新所述偏移量;
将所述消息队列中的消息主题分配至所述消费组,其中,若所述消费组被分配所述消息主题时,所述消费组为工作消费组,若所述消费组未被分配所述消息主题时,所述消费组为备用消费组;
当所述工作消费组被分配至少两个所述消息主题,且其中的所述消息主题中断时,将中断的所述消息主题分配至所述备用消费组,以使所述备用消费组根据所述偏移量组中对应的偏移量,重启所述中断的消息主题。


2.根据权利要求1所述的消息主题的处理方法,其特征在于,
所述消息主题的处理方法还包括:设置对应各个所述消费组的主题分配记录,其中,所述主题分配记录包括各个所述消费组被分配的所述消息主题;
将所述中断的消息主题分配至所述备用消费组的步骤包括:根据所述主题分配记录中查找所述备用消费组,并将所述中断的消息主题分配至查找到的所述备用消费组。


3.根据权利要求2所述的消息主题的处理方法,其特征在于,
所述消息主题的处理方法还包括:设置对应所述消费组的线程信息;
将所述中断的消息主题分配至查找到的所述备用消费组的步骤包括:
当根据所述主题分配记录查找到至少两个所述备用消费组时,获取各个所述备用消费组对应的线程信息;
根据所述线程信息在各个所述备用消费组中,确定出与所述中断的消息主题适配的备用消费组。


4.根据权利要求3所述的消息主题的处理方法,其特征在于,所述线程信息包括所述消费组的线程数量和单线程消费速率阈值,根据所述线程信息在各个所述备用消费组中,确定出与所述中断的消息主题适配的备用消费组的步骤包括:
获取所述偏移量组中所述中断的消息主题的历史偏移量;
根据所述历史偏移量计算所述中断的消息主题的数据流量;以及
根据所述线程数量、所述单线程消费速率阈值和所述中断的消息主题的数据流量确定出与所述中断的消息主题适配的备用消费组。


5.根据权利要求4所述的消息主题的处理方法,其特征在于,所述消息主题的处理方法还包括:
当根据所述主题分配记录查找不到所述备用消费组时,在各个所述工作消费组中确定两个所述工作消费组;
针对所述两个工作消费组,将其中一个所述工作消费组的消息主题分配至另一个所述工作消费组,以得到新的所述备用消费组;
将所述中断的消息主题分配至新的所述备用消费组。


6.根据权利要求5所述的消息主题的处理方法,其特征在于,
所述线程信息还包括线程空闲时间,所述消息主题的处...

【专利技术属性】
技术研发人员:王晓初赵宏军
申请(专利权)人:平安消费金融有限公司
类型:发明
国别省市:上海;31

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

1