07小节:RocketMQ5.x延时消息修改优惠券结束状态
作者:程序员马丁
Ragent AI —— 从 0 到 1 纯手工打造企业级 Agentic RAG,拒绝 Demo 玩具!AI 时代,助你拿个offer。
RocketMQ5.x延时消息修改优惠券结束状态,元数据信息:
- 什么是牛券oneCoupon:https://t.zsxq.com/pAWgS
- 代码仓库:https://gitcode.net/nageoffer/onecoupon —— 申请项目权限参考上述牛券项目链接
- 章节难度:★★★☆☆ - 较难
- 视频地址:https://t.zsxq.com/53z0Y
©版权所有 - 拿个offer-开源&项目实战星球专属学习项目,依据《中华人民共和国著作权法实施条例》和《知识星球产权保护》,严禁未经本项目原作者明确书面授权擅自 分享至 GitHub、Gitee 等任何开放平台。违者将面临法律追究。
内容摘要:讲解什么是消息队列和什么是 RocketMQ,并说了消息队列常见的业务场景,使用 RocketMQ5.x 任意延时消息完成优惠券到期结束功能,其中有较多的细节,希望大家多多注意。
课程目录如下所示:
- 业务背景
- Git 分支
- 消息队列介绍
- RocketMQ 使用安装
- RocketMQ 代码实战
- 文末总结
业务背景
在之前的章节里,我们完成了优惠券模板的创建、结束等功能,但是还遗留了一个小功能,那就是如果说优惠券模板有效期结束了之后,我们的模板状态依然是生效中。基于这个功能点考虑,我们需要在定时任务和定时消息中进行选择,以此来满足精准关闭优惠券模板功能。

使用 RocketMQ 定时消息有如下优势:
- 定时精度高、开发门槛低:消息定时时间不存在阶梯间隔,可以轻松实现任意精度事件触发,无需业务去重。
- 高性能、可扩展:传统的定时实现方案较为复杂,需要进行数据库扫描,容易遇到性能瓶颈的问题,RocketMQ 可以基于定时消息特性完成事件驱动,实现百万级消息 TPS 能力。
RocketMQ5.x 之前仅支持固定延迟级别,5.x 之后支持了任意延时消息。使用定时任务也能够完成该功能,在这个小节里给大家演示消息队列延时,后面还有个类似的需求,使用 XXL-Job 完成。
使用消息队列时序图如下所示:

Git 分支
20240821_dev_coupon-template-close_rocketmq5_ding.ma
消息队列介绍
1. 什么是消息队列?
消息队列是一种用于异步通信的机制,允许不同的系统组件或服务之间交换信息。它的主要作用是将消息从发送者传递到接收者,同时解耦这两个组件的直接依赖。
2. 什么是 RocketMQ?
RocketMQ 是一个开源的分布式消息中间件,由阿里巴巴开发并贡献给 Apache 软件基金会。它主要用于高吞吐量、低延迟的消息传递需求。

RocketMQ 的优点和功能是比较多的,以下是 一些主要特点和功能:
-
高吞吐量和低延迟:RocketMQ 设计用于处理大量的消息,并提供低延迟的消息传递服务,适合需要高性能的场景。
-