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

基于滑动窗口的消息消费方法、装置、设备及存储介质制造方法及图纸

技术编号:41154189 阅读:5 留言:0更新日期:2024-04-30 18:19
本申请涉及一种基于滑动窗口的消息消费方法、装置、设备及存储介质。所述方法包括:在消息生产者和消息消费者之间部署消息中间件,构建第一滑动窗口和第二滑动窗口记录消息中间件中的待发送消息、发送中消息和消息中间件是否接收到已确认消费消息,并分别构建第一位图表和第二位图表存储滑动窗口记录的信息,在消息中间件上同步滑动第一滑动窗口与第二滑动窗口,并当第二滑动窗口记录到消息中间件接收到已确认消费消息时,将已确认消费消息的最小位移存储至本地磁盘中,直至消息中间件发布的所有消息消费完成。本方法通过采用位图与滑动窗口结合的机制,大幅降低消息消费所需的内存,加快消息消费进度,满足海量消息的处理需求。

【技术实现步骤摘要】

本申请涉及消息消费,特别是涉及一种基于滑动窗口的消息消费方法、装置、设备及存储介质


技术介绍

1、消息中间件主要用于分布式环境下扩展进程间的通信,消息中间件的消费能力受限于消息中间件本身的架构与设计。通常消息中间件采用消息队列技术,消息队列是一种应用间的通信方式,消息发送后可以立即返回,由消息系统来确保消息的可靠传递。在进行消息消费时,生产者只管把消息发布到消息队列中而不用管谁来取,消费者只管从消息队列中获取消息而不管是谁发布的,这样生产者和消费者都不用知道对方的存在。

2、在实际应用中,消息中间件面临着海量消息的处理需求,在处理大量消息时,消息队列会出现性能瓶颈,导致出现系统响应延迟和吞吐量下降的问题,消息队列实时记录消费者消费的历史记录偏移位置极大地约束了消费者性能,导致消费者的消费能力较差。尤其当系统遇到高并发请求时,由于消费者消费能力没有跟上生产者的生产能力,导致消息队列中的消息堆积甚至消息丢失。


技术实现思路

1、基于此,有必要针对上述技术问题,提供一种能够满足海量消息的处理需求、加快消息消费进度的基于滑动窗口的消息消费方法、装置、设备及存储介质。

2、一种基于滑动窗口的消息消费方法,所述方法包括:

3、在消息生产者和消息消费者之间部署消息中间件,消息中间件用于实现消息生产者与消息消费者之间的消息传递;

4、通过消息中间件将消息生产者生成的消息发送至消息消费者进行消费时,构建第一滑动窗口记录消息中间件中的待发送消息和发送中消息,并构建第一位图表存储第一滑动窗口记录的信息;

5、通过消息中间件接收消息消费者在消费完成后回复的已确认消费消息时,构建第二滑动窗口记录消息中间件是否接收到已确认消费消息,并构建第二位图表存储第二滑动窗口记录的信息;

6、在消息中间件上同步滑动第一滑动窗口与第二滑动窗口,并当第二滑动窗口记录到消息中间件接收到已确认消费消息时,将已确认消费消息的最小位移存储至本地磁盘中,直至消息中间件发布的所有消息消费完成。

7、在其中一个实施例中,所述方法还包括:根据消息消费者所需消息的主题将设定数量的消息消费者汇集为消费者组,所述消费者组中的所有消息消费者共享消费同一主题内的消息,且一个主题内的消息至少由一个消费者组进行消费。

8、在其中一个实施例中,消息消费者在消费完成后回复的已确认消费消息为ack(确认报文);

9、通过消息中间件接收消息消费者在消费完成后回复的已确认消费消息,包括:

10、消息消费者在接收到消息中间件发送的消息后,将消息移交至上层应用进行业务处理,并在业务处理完成后,手动发送ack至消息中间件。

11、在其中一个实施例中,第一滑动窗口与第二滑动窗口的大小一致,且二者在消息中间件上的起始位移与结束位移一致。

12、在其中一个实施例中,所述方法还包括:

13、第一位图表将第一滑动窗口记录的待发送消息标记为0,将第一滑动窗口记录的发送中消息标记为1;

14、第二位图表在第二滑动窗口记录到消息中间件接收到已确认消费消息时,将已确认消费消息标记为1,第二位图表在第二滑动窗口记录到消息中间件未接收到已确认消费消息时,将已确认消费消息标记为0。

15、在其中一个实施例中,所述方法还包括:

16、当发送中消息被消息消费者进行消费,但消息消费者未回复已确认消费消息时,第一位图表将第一滑动窗口记录的发送中消息的标记复位为0;

17、当发送中消息被消息消费者进行消费,且消息消费者回复已确认消费消息时,第一位图表将第一滑动窗口记录的发送中消息的标记维持为1。

18、在其中一个实施例中,在当第二滑动窗口记录到消息中间件接收到已确认消费消息时,将已确认消费消息的最小位移存储至本地磁盘中之后,还包括:

19、当消息生产者与消息消费者之间的消息消费重启时,将本地磁盘中存储的最小位移加载至消息中间件中,消息中间件继续将最小位移对应位置的消息发送至消息消费者进行消费。

20、一种基于滑动窗口的消息消费装置,所述装置包括:

21、预部署模块,用于在消息生产者和消息消费者之间部署消息中间件,消息中间件用于实现消息生产者与消息消费者之间的消息传递;

22、第一滑动窗口构建模块,用于通过消息中间件将消息生产者生成的消息发送至消息消费者进行消费时,构建第一滑动窗口记录消息中间件中的待发送消息和发送中消息,并构建第一位图表存储第一滑动窗口记录的信息;

23、第二滑动窗口构建模块,用于通过消息中间件接收消息消费者在消费完成后回复的已确认消费消息时,构建第二滑动窗口记录消息中间件是否接收到已确认消费消息,并构建第二位图表存储第二滑动窗口记录的信息;

24、窗口滑动模块,用于在消息中间件上同步滑动第一滑动窗口与第二滑动窗口,并当第二滑动窗口记录到消息中间件接收到已确认消费消息时,将已确认消费消息的最小位移存储至本地磁盘中,直至消息中间件发布的所有消息消费完成。

25、一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:

26、在消息生产者和消息消费者之间部署消息中间件,消息中间件用于实现消息生产者与消息消费者之间的消息传递;

27、通过消息中间件将消息生产者生成的消息发送至消息消费者进行消费时,构建第一滑动窗口记录消息中间件中的待发送消息和发送中消息,并构建第一位图表存储第一滑动窗口记录的信息;

28、通过消息中间件接收消息消费者在消费完成后回复的已确认消费消息时,构建第二滑动窗口记录消息中间件是否接收到已确认消费消息,并构建第二位图表存储第二滑动窗口记录的信息;

29、在消息中间件上同步滑动第一滑动窗口与第二滑动窗口,并当第二滑动窗口记录到消息中间件接收到已确认消费消息时,将已确认消费消息的最小位移存储至本地磁盘中,直至消息中间件发布的所有消息消费完成。

30、一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:

31、在消息生产者和消息消费者之间部署消息中间件,消息中间件用于实现消息生产者与消息消费者之间的消息传递;

32、通过消息中间件将消息生产者生成的消息发送至消息消费者进行消费时,构建第一滑动窗口记录消息中间件中的待发送消息和发送中消息,并构建第一位图表存储第一滑动窗口记录的信息;

33、通过消息中间件接收消息消费者在消费完成后回复的已确认消费消息时,构建第二滑动窗口记录消息中间件是否接收到已确认消费消息,并构建第二位图表存储第二滑动窗口记录的信息;

34、在消息中间件上同步滑动第一滑动窗口与第二滑动窗口,并当第二滑动窗口记录到消息中间件接收到已确认消费消息时,将已确认消费消息的最小位移存储至本地磁盘中,直至消息中间件发本文档来自技高网...

【技术保护点】

1.一种基于滑动窗口的消息消费方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述方法还包括:根据消息消费者所需消息的主题将设定数量的消息消费者汇集为消费者组,所述消费者组中的所有消息消费者共享消费同一主题内的消息,且一个主题内的消息至少由一个消费者组进行消费。

3.根据权利要求1所述的方法,其特征在于,所述消息消费者在消费完成后回复的已确认消费消息为ACK;

4.根据权利要求1所述的方法,其特征在于,所述第一滑动窗口与所述第二滑动窗口的大小一致,且二者在消息中间件上的起始位移与结束位移一致。

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

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

7.根据权利要求1所述的方法,其特征在于,在当所述第二滑动窗口记录到所述消息中间件接收到已确认消费消息时,将所述已确认消费消息的最小位移存储至本地磁盘中之后,还包括:

8.一种基于滑动窗口的消息消费装置,其特征在于,所述装置包括:

9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。

10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。

...

【技术特征摘要】

1.一种基于滑动窗口的消息消费方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述方法还包括:根据消息消费者所需消息的主题将设定数量的消息消费者汇集为消费者组,所述消费者组中的所有消息消费者共享消费同一主题内的消息,且一个主题内的消息至少由一个消费者组进行消费。

3.根据权利要求1所述的方法,其特征在于,所述消息消费者在消费完成后回复的已确认消费消息为ack;

4.根据权利要求1所述的方法,其特征在于,所述第一滑动窗口与所述第二滑动窗口的大小一致,且二者在消息中间件上的起始位移与结束位移一致。

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

【专利技术属性】
技术研发人员:彭勇尹全军王鹏胡越赵栋曾俊杰曾云秀刘吉元杨硕杨伟杨金华
申请(专利权)人:中国人民解放军国防科技大学
类型:发明
国别省市:

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

1