一种基于业务场景的消息队列处理方法及装置制造方法及图纸

技术编号:38919504 阅读:23 留言:0更新日期:2023-09-25 09:31
本说明书涉及消息队列技术领域,提供了一种基于业务场景的消息队列处理方法及装置。该方法包括:接收批量消息;从缓存中调用批量消息对应的业务场景属性信息;业务场景属性信息包括业务渠道、重试次数和历史平均消耗时长;分别根据业务渠道、重试次数和历史平均消耗时长对应的匹配条件匹配得到对应的消息,并将对应的消息分别输送至不同的消息队列;最后将剩余批量消息输送至第五消息队列。通过本发明专利技术实施例,可保障并提高消息队列的运行效率,避免消息阻塞积压。消息阻塞积压。消息阻塞积压。

【技术实现步骤摘要】
一种基于业务场景的消息队列处理方法及装置


[0001]本说明书涉及消息队列
,尤其是涉及一种基于业务场景的消息队列处理方法及装置。

技术介绍

[0002]在大型分布式系统中,消息队列是指利用高效可靠的消息传递机制进行与平台无关的数据交流,并基于数据通信来进行分布式系统的集成,消息队列作为分布式系统中的关键组件,消息队列可以在分布式环境下提供应用解耦、流量削峰、异步通信、数据同步等功能,消息队列的主要目的是提供路由并保证消息的传递,然而在消息队列的运行过程中消费过程耗时过长、相同消息与业务处理相关联时重复执行多次、消费过程中包含远程过程调用时调用方服务异常等问题均可能导致消息队列运行效率的降低,甚至造成消息传递的卡顿和阻塞,因此亟需一种基于业务场景的消息队列处理方法,实现实时高效匹配分发消息,从而保障并提高消息队列的运行效率,避免消息阻塞积压,增强分布式业务系统的承载能力。

技术实现思路

[0003]鉴于消息在消息队列传输时远程过程调用方服务异常、高耗时消息阻塞低耗时消息传送等问题,提出了本方案以便克服上述问题或者至少部分地解决上述问题。
[0004]一方面,本说明书的一些实施例的目的在于提供一种基于业务场景的消息队列处理方法,所述方法包括:
[0005]接收批量消息;
[0006]从缓存中调用所述批量消息对应的业务场景属性信息;所述业务场景属性信息包括业务渠道、重试次数、历史平均消耗时长;
[0007]实时识别每一个业务渠道是否通信异常,若异常则将该业务渠道标记为熔断降级属性;
[0008]从所述批量消息中匹配得到业务渠道为熔断降级属性的消息,并将匹配得到的消息输送至第一消息队列;
[0009]从所述缓存中查询匹配后的批量消息对应的所述历史平均消耗时长,并将所述历史平均消耗时长大于第一阈值的消息输送至第二消息队列;
[0010]从所述缓存中查询输送后的批量消息对应的所述重试次数,并将所述重试次数大于第二阈值的消息输送至第三消息队列,将所述重试次数小于第三阈值的消息输送至第四消息队列;
[0011]将剩余批量消息输送至第五消息队列。
[0012]进一步地,所述实时识别每一个业务渠道是否通信异常,包括:
[0013]当一个业务渠道的链路接口的单位时间异常请求数目占总请求量的比值大于等于第四阈值时,该业务渠道通信异常;
[0014]或,
[0015]当一个业务渠道的链路接口的请求平均响应时间大于等于第五阈值时,该业务渠道通信异常。
[0016]进一步地,所述业务场景属性信息还包括业务类型,计算批量消息对应的历史平均消耗时长,包括:
[0017]获取当前批量消息的至少一个在前批次批量消息的单位时间消息响应量;
[0018]以业务类型为划分标准,根据所述在前批次批量消息中各业务类型消息对应的单位时间消息响应量,计算得到所述在前批次批量消息中各业务类型消息的平均消耗时长;
[0019]根据所述在前批次批量消息中各业务类型消息的平均消耗时长得到当前批量消息对应的业务类型消息的历史平均消耗时长。
[0020]进一步地,所述获取当前批量消息的至少一个在前批次批量消息的单位时间消息响应量,进一步包括,获取当前批量消息的前一批次批量消息的单位时间消息响应量。
[0021]进一步地,所述将剩余批量消息调入第五队列之后,进一步包括,若实时识别出先前异常的业务渠道通信恢复正常,则将该业务渠道对应的熔断降级属性的标记移除。
[0022]进一步地,当所述批量消息分别输送至对应的消息队列之后,进一步包括:
[0023]将满足一条以上死信条件的消息从原消息队列调入死信路由;所述死信条件包括消息的生存时间值大于预设的阈值,消息被对应接口拒收,以及消息所在的消息队列长度大于预设最大长度;所述死信路由包括过期判断插件和死信交换机;
[0024]所述过期判断插件接收当前消息后,判断当前消息是否过期;
[0025]若当前消息过期,则将该消息输送至所述死信交换机,并由所述死信交换机将当前消息投递至所述原消息队列。
[0026]另一方面,本说明书的一些实施例还提供一种基于业务场景的消息队列处理装置,所述装置包括:
[0027]接收模块,用于接收批量消息;
[0028]属性调用模块,用于从缓存中调用所述批量消息对应的业务场景属性信息;所述业务场景属性信息包括业务渠道、重试次数、历史平均消耗时长;
[0029]通信异常判断模块,用于实时识别每一个业务渠道是否通信异常,若异常则将该业务渠道标记为熔断降级属性;
[0030]熔断降级匹配模块,用于从所述批量消息中匹配得到业务渠道为熔断降级属性的消息,并将匹配得到的消息输送至第一消息队列;
[0031]耗时规则输送模块,用于从所述缓存中查询匹配后的批量消息对应的所述历史平均消耗时长,并将所述历史平均消耗时长大于第一阈值的消息输送至第二消息队列;
[0032]重试规则输送模块,用于从所述缓存中查询输送后的批量消息对应的所述重试次数,并将所述重试次数大于第二阈值的消息输送至第三消息队列,将所述重试次数小于第三阈值的消息输送至第四消息队列;
[0033]余量输送模块,用于将剩余批量消息输送至第五消息队列。
[0034]另一方面,本说明书的一些实施例还提供了一种计算机设备,包括存储器、处理器、以及存储在所述存储器上的计算机程序,所述计算机程序被所述处理器运行时,执行上述方法的指令。
[0035]另一方面,本说明书的一些实施例还提供了一种计算机存储介质,其上存储有计算机程序,所述计算机程序被计算机设备的处理器运行时,执行上述方法的指令。
[0036]另一方面,本说明书的一些实施例还提供了一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被计算机设备的处理器运行时,执行上述方法的指令。
[0037]本说明书的一些实施例提供的一个或者多个技术方案,至少具有如下的技术效果:
[0038]本说明书的实施例在接收批量消息后根据预先设定的消息输送规则实现消息分流,具体地,首先自动实时识别批量消息中业务渠道对应的链路接口是否能够正常通信,将通信异常的业务渠道对应的消息输送至第一消息队列进行隔离,待通信正常时再将此类消息移出第一消息队列,从而避免此类无法正常传递的消息占用消息队列资源,之后再将剩余的批量消息中历史平均消耗时长大于第一阈值的消息输送至第二消息队列,所述历史平均消耗时长根据当前批量消息的至少一个在前批次批量消息的单位时间消息响应量计算得到,进一步保证了当前消息对应的历史平均消耗时长的数据准确性,同时将耗时长的消息放入同一消息队列可以避免其对耗时相对短的消息造成阻塞,之后再将剩余的批量消息中重试次数大于第二阈值的消息输送至第三消息队列,重试次数小于第三阈值的消息输送至第四消息队列,以避免重试次数多的消息阻碍重试次数相对少的消息的传递,同时也进一步精细化分发消息本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于业务场景的消息队列处理方法,其特征在于,所述方法包括:接收批量消息;从缓存中调用所述批量消息对应的业务场景属性信息;所述业务场景属性信息包括业务渠道、重试次数、历史平均消耗时长;实时识别每一个业务渠道是否通信异常,若异常则将该业务渠道标记为熔断降级属性;从所述批量消息中匹配得到业务渠道为熔断降级属性的消息,并将匹配得到的消息输送至第一消息队列;从所述缓存中查询匹配后的批量消息对应的所述历史平均消耗时长,并将所述历史平均消耗时长大于第一阈值的消息输送至第二消息队列;从所述缓存中查询输送后的批量消息对应的所述重试次数,并将所述重试次数大于第二阈值的消息输送至第三消息队列,将所述重试次数小于第三阈值的消息输送至第四消息队列;将剩余批量消息输送至第五消息队列。2.根据权利要求1所述的方法,其特征在于,所述实时识别每一个业务渠道是否通信异常,包括:当一个业务渠道的链路接口的单位时间异常请求数目占总请求量的比值大于等于第四阈值时,该业务渠道通信异常;或,当一个业务渠道的链路接口的请求平均响应时间大于等于第五阈值时,该业务渠道通信异常。3.根据权利要求1所述的方法,其特征在于,所述业务场景属性信息还包括业务类型,计算批量消息对应的历史平均消耗时长,包括:获取当前批量消息的至少一个在前批次批量消息的单位时间消息响应量;以业务类型为划分标准,根据所述在前批次批量消息中各业务类型消息对应的单位时间消息响应量,计算得到所述在前批次批量消息中各业务类型消息的平均消耗时长;根据所述在前批次批量消息中各业务类型消息的平均消耗时长得到当前批量消息对应的业务类型消息的历史平均消耗时长。4.根据权利要求3所述的方法,其特征在于,所述获取当前批量消息的至少一个在前批次批量消息的单位时间消息响应量,进一步包括,获取当前批量消息的前一批次批量消息的单位时间消息响应量。5.根据权利要求1所述的方法,其特征在于,所述将剩余批量消息调入第五队列之后,进一步包括,若实时识别出先前异常的业务渠道通信恢复正常,则将该业务渠道对应的熔断降级属性的标记移除。6.根据权利要求1所述的方法,其特征在于,当所述...

【专利技术属性】
技术研发人员:周正杭刘野曲相余吴迪
申请(专利权)人:厦门友微科技有限公司
类型:发明
国别省市:

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

1