消息消费控制方法及其装置、设备、介质制造方法及图纸

技术编号:38155635 阅读:17 留言:0更新日期:2023-07-13 09:23
本申请涉及电商技术领域中一种消息消费控制方法及其装置、设备、介质,所述方法包括:将生产者提供的消息发送至服务代理以供消费者从所述服务代理中拉取消息;响应任意服务代理的异常事件,启用协调线程池以供消费者从所述协调线程池中拉取消息;从未触发异常事件的服务代理中拉取部分消息至所述协调线程池,以通过所述协调线程池向消费者分发所述部分消息。本申请能够在服务代理发生异常时,协调处理未发生异常的服务代理的消息,有效避免消息积压,确保消息消费的稳健性和可用性。确保消息消费的稳健性和可用性。确保消息消费的稳健性和可用性。

【技术实现步骤摘要】
消息消费控制方法及其装置、设备、介质


[0001]本申请涉及电商
,尤其涉及一种消息消费控制方法及其相应的装置、计算机设备、计算机可读存储介质。

技术介绍

[0002]消息中间件作为电商业务中常见且非常重要的一种技术,在支付、订单等电商业务被使用。消息中间件集群通常包含多个存储消息的服务器,难免出现部分服务器宕机的异常情况,导致其余存活的服务器的消息积压。传统技术中,采用临时将队列资源扩大为原先的20倍,以及征用原先20倍的机器部署消费消息的资源,以原先的20倍速度消费积压的消息,可见所述解决方案需要极其庞大的队列资源和消费资源,实现成本太高,十分不经济。
[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]又一方面,适应本申请的目的之一而提供的一本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种消息消费控制方法,其特征在于,包括如下步骤:将生产者提供的消息发送至服务代理以供消费者从所述服务代理中拉取消息;响应任意服务代理的异常事件,启用协调线程池以供消费者从所述协调线程池中拉取消息;从未触发异常事件的服务代理中拉取部分消息至所述协调线程池,以通过所述协调线程池向消费者分发所述部分消息。2.根据权利要求1所述的消息控制方法,其特征在于,从未触发异常事件的服务代理中拉取部分消息至所述协调线程池,包括如下步骤:根据预设的负荷阈值拉取出未触发异常事件的服务代理中的全部超负荷消息;以所述超负荷消息所携带的唯一标识,从消息状态表中查询所述唯一标识相对应的消费状态,当所述消费状态表征未消费时,将所述超负荷消息在所述协调线程池中保留;当所述消费状态表征已消费时,丢弃相应的超负荷消息。3.根据权利要求1所述的消息控制方法,其特征在于,从未触发异常事件的服务代理中拉取部分消息至所述协调线程池,以通过所述协调线程池向消费者分发所述部分消息之后,包括:当触发异常事件的全部服务代理均恢复正常,且所述协调线程池的全部消息的消息状态均表征已消费时,停止协调线程池的工作。4.根据权利要求1所述的消息控制方法,其特征在于,将生产者提供的消息发送至服务代理以供消费者从所述服务代理中拉取消息,包括如下步骤:获取系统稳定性指标,所述系统稳定性指标包括生产者数量、服务代理中的消息数量、消费者数量、服务代理的性能信息;判断所述各项系统稳定性指标是否均低于相应预设的稳定阈值;当存在超过稳定阈值的系统稳定性指标时,暂停所述消费者消费消息,根据所述系统稳定性指标进行稳定性处理使其低于相应的稳定阈值;当各项系统稳定性指标均低于相应预设的稳定阈值时,恢复所述消费者消费消息。5.根据权利要求4所述的消息控制方法,其特征在于,根据所...

【专利技术属性】
技术研发人员:苏是光
申请(专利权)人:广州华多网络科技有限公司
类型:发明
国别省市:

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

1