System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于RocketMQ实现业务定时延迟处理的方法、系统、设备及介质技术方案_技高网

一种基于RocketMQ实现业务定时延迟处理的方法、系统、设备及介质技术方案

技术编号:44594346 阅读:6 留言:0更新日期:2025-03-14 12:51
一种基于RocketMQ实现业务定时延迟处理的方法、系统、设备及介质,属于信息处理技术领域,解决了传统方法在处理定时延迟消息时存在灵活性差、资源浪费、调度灵活性不足,无法满足任意时间精度需求的缺陷,这些缺陷限制了消息队列在某些特定业务场景中的应用,并影响了系统的整体性能和可靠性的问题。方法包括:采集用户设置的业务数据,提取业务数据中的延迟信息,根据延迟信息创建消息生产者,生成消息内容,并且在RocketMQ消息中间件中创建延迟消费主题,创建对应的消息主题消费者;根据业务数据中的延迟信息,将业务数据发送至延迟消费主题的对应队列中,消息主题消费者按照延迟信息进行顺序消费。发明专利技术适用于订单系统管理等应用场景。

【技术实现步骤摘要】

本专利技术属于信息处理,具体涉及一种基于rocketmq实现业务定时延迟的技术。


技术介绍

1、在面对高并发处理的业务场景,定时延迟处理是常用的业务处理方式,用户在提交的业务数据之后,程序并不是立即处理,而是通过消息队列等中间件进行缓存,在触发延迟时间后消费消息体处理业务,实现定时推送的效果。

2、随着分布式系统和微服务架构的广泛应用,消息队列作为一种高效的数据交换中间件,在解耦系统组件、提高系统扩展性和可靠性方面发挥着重要作用。rocketmq作为一款高性能、高吞吐量的分布式消息队列,被广泛应用于各种业务场景中。

3、然而,在实际应用中,rocketmq等消息队列在处理定时延迟消息时存在局限性。具体来说,rocketmq原生支持的延迟消息功能通常只提供有限数量的固定延迟级别,如1s、5s、10s、30s、1m、2m、3m、4m、5m、6m、7m、8m、9m、10m、20m、30m、1h、2h等。这种固定延迟级别的设计难以满足复杂业务场景对任意时间精度延迟消息的需求。

4、例如,在电商系统中,可能需要根据订单支付情况在特定时间后自动关闭未支付订单。如果订单需要在35分钟后自动关闭,而rocketmq只提供到30分钟的固定延迟级别,那么就需要在消费者端进行额外的定时处理,这不仅增加了系统的复杂性,还可能引入额外的延迟和不确定性。

5、因此,现有技术中的消息队列在处理定时延迟消息时存在灵活性差、无法满足任意时间精度需求的问题。这些问题限制了消息队列在某些特定业务场景中的应用,并影响了系统的整体性能和可靠性。


技术实现思路

1、本专利技术提出一种基于rocketmq实现业务定时延迟处理的方法、系统、设备及介质,其目的是解决传统方法通常依赖于定时任务或手动调度,在处理定时延迟消息时存在灵活性差、资源浪费、调度灵活性不足,无法满足任意时间精度需求的缺陷,这些缺陷限制了消息队列在某些特定业务场景中的应用,并影响了系统的整体性能和可靠性的问题。

2、一种基于rocketmq实现业务定时延迟处理的方法,所述方法包括:

3、s1:采集用户设置的业务数据,提取业务数据中的延迟信息,根据所述延迟信息创建消息生产者,生成消息内容,并且在rocketmq消息中间件中创建延迟消费主题,创建对应的消息主题消费者;

4、s2:根据所述业务数据中的延迟信息,将所述业务数据发送至延迟消费主题的对应队列中,所述消息主题消费者按照延迟信息进行顺序消费,完成所述方法。

5、更进一步地,提供优选方案:所述延迟信息包括:延迟处理时间、延迟消息时长和延迟级别。

6、更进一步地,提供优选方案:所述消息生产者根据延迟处理时间创建;根据所述业务数据中的延迟信息,将所述业务数据发送至延迟消费主题的对应队列中,是根据所述业务数据中的延迟级别将所述业务数据发送至延迟消费主题的对应队列中;所述消息主题消费者按照延迟消息时长和延迟级别进行顺序消费。

7、更进一步地,提供优选方案:所述延迟处理时间根据消息发送的时间以及业务数据中用户设置的延迟时长确定。

8、更进一步地,提供优选方案:所述生成消息内容的步骤包括:

9、所述消息生产者根据延迟处理时间和接收业务数据时间生成延迟级别,生成方法为:延迟处理时间减去接收业务数据时间,生成延迟级别分为18级,所述延迟级别的区间为1秒至2小时,延迟级别若超过2小时则设置为2小时;

10、所述消息生产者将业务数据和延迟级别设置到延迟消息体中生成延迟消息,根据延迟级别将延迟消息发送至消息中间件的对应队列中。

11、更进一步地,提供优选方案:所述顺序消费包括:

12、所述消息主题消费者从所述延迟消费主题中拉取所有的消息数据,并启动多个消费者线程进行消息处理;

13、所述多个消费者线程针对所述消息数据,根据消息设置的延迟处理时间,判断当前时间是否达到消息的消费时间,若是,则消费消息,否则将消息重新发送至延迟队列中。

14、更进一步地,提供优选方案:所述多个消费者线程在消费消息时,若没有达到消费时间,则采用延迟处理时间减去消息延迟级别和消息接受时间,获得新的延迟级别,并发送至队列中。

15、本专利技术还提供一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,当所述处理器运行所述存储器存储的计算机程序时,所述处理器执行根据上述任意一种方案组合所述的一种基于rocketmq实现业务定时延迟处理的方法。

16、本专利技术还提供一种计算机可读存储介质,所述计算机可读存储介质用于储存计算机程序,所述计算机程序执行权利要求1-7中任一项所述的一种基于rocketmq实现业务定时延迟处理的方法的步骤。

17、本专利技术还提供一种基于rocketmq实现业务定时延迟处理的系统,所述系统包括:

18、延迟消息生产模块:用于采集用户设置的业务数据,提取业务数据中的延迟信息,根据所述延迟信息创建消息生产者,生成消息内容,并且在rocketmq消息中间件中创建延迟消费主题,创建对应的消息主题消费者;

19、延迟消息消费模块:用于根据所述业务数据中的延迟信息,将所述业务数据发送至延迟消费主题的对应队列中,所述消息主题消费者按照延迟信息进行顺序消费。

20、与现有技术相比,本专利技术的优势在于:

21、本专利技术所述的一种在rocketmq消息中间件中根据用户选择的延时处理时间和消息生成时间,动态生成rocketmq延迟级别,由不同的延迟队列进行存储,达到自定义延迟级别的处理效果,能够满足业务对任意时间精度延迟消息的需求,克服了现有技术中固定延迟级别带来的局限性,提高了延迟处理的灵活性。本专利技术在rocketmq的基础上实现了精细化的延迟处理,减少了在消费者端进行额外定时处理的需求,从而降低了系统的复杂性,提高了整体性能和可靠性。本专利技术能够更准确地按照用户设定的时间执行延迟任务,如订单关闭、优惠券发放等,从而提升了用户体验和满意度。

22、综上所述,基于rocketmq实现业务定时延迟处理的方法在灵活性、系统性能、用户体验等方面均表现出显著的优势。

23、本专利技术适用于订单系统管理等应用场景。

本文档来自技高网...

【技术保护点】

1.一种基于RocketMQ实现业务定时延迟处理的方法,其特征在于,所述方法包括:

2.根据权利要求1所述的一种基于RocketMQ实现业务定时延迟处理的方法,其特征在于,所述延迟信息包括:延迟处理时间、延迟消息时长和延迟级别。

3.根据权利要求2所述的一种基于RocketMQ实现业务定时延迟处理的方法,其特征在于,所述消息生产者根据延迟处理时间创建;根据所述业务数据中的延迟信息,将所述业务数据发送至延迟消费主题的对应队列中,是根据所述业务数据中的延迟级别将所述业务数据发送至延迟消费主题的对应队列中;所述消息主题消费者按照延迟消息时长和延迟级别进行顺序消费。

4.根据权利要求2所述的一种基于RocketMQ实现业务定时延迟处理的方法,其特征在于,所述延迟处理时间根据消息发送的时间以及业务数据中用户设置的延迟时长确定。

5.根据权利要求2所述的一种基于RocketMQ实现业务定时延迟处理的方法,其特征在于,所述生成消息内容的步骤包括:

6.根据权利要求5所述的一种基于RocketMQ实现业务定时延迟处理的方法,其特征在于,所述顺序消费包括:

7.根据权利要求6所述的一种基于RocketMQ实现业务定时延迟处理的方法,其特征在于,所述多个消费者线程在消费消息时,若没有达到消费时间,则采用延迟处理时间减去消息延迟级别和消息接受时间,获得新的延迟级别,并发送至队列中。

8.计算机设备,其特征在于,包括存储器和处理器,所述存储器中存储有计算机程序,当所述处理器运行所述存储器存储的计算机程序时,所述处理器执行根据权利要求1-7中任一项所述的一种基于RocketMQ实现业务定时延迟处理的方法。

9.计算机可读存储介质,其特征在于,所述计算机可读存储介质用于储存计算机程序,所述计算机程序执行权利要求1-7中任一项所述的一种基于RocketMQ实现业务定时延迟处理的方法的步骤。

10.一种基于RocketMQ实现业务定时延迟处理的系统,其特征在于,所述系统包括:

...

【技术特征摘要】

1.一种基于rocketmq实现业务定时延迟处理的方法,其特征在于,所述方法包括:

2.根据权利要求1所述的一种基于rocketmq实现业务定时延迟处理的方法,其特征在于,所述延迟信息包括:延迟处理时间、延迟消息时长和延迟级别。

3.根据权利要求2所述的一种基于rocketmq实现业务定时延迟处理的方法,其特征在于,所述消息生产者根据延迟处理时间创建;根据所述业务数据中的延迟信息,将所述业务数据发送至延迟消费主题的对应队列中,是根据所述业务数据中的延迟级别将所述业务数据发送至延迟消费主题的对应队列中;所述消息主题消费者按照延迟消息时长和延迟级别进行顺序消费。

4.根据权利要求2所述的一种基于rocketmq实现业务定时延迟处理的方法,其特征在于,所述延迟处理时间根据消息发送的时间以及业务数据中用户设置的延迟时长确定。

5.根据权利要求2所述的一种基于rocketmq实现业务定时延迟处理的方法,其特征在于,所述生成消息内容的步骤包括...

【专利技术属性】
技术研发人员:李明权周江涛伺彦伟魏荣祁刘欢欢姚鹏飞张春远鲁震徐爱华张阔张俊霞范国华宿增寿刘卫强贺志勇
申请(专利权)人:河北航天信息技术有限公司
类型:发明
国别省市:

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

1