RocketMQ(20) -- RocketMQ应用 -- 延时消息

RocketMQ的延时消息功能可用于实现定时任务,如电商超时订单处理。消息按预设的延迟等级延迟投递,例如10s、30min等。延时消息在Broker端经过修改Topic、创建queueId、更新索引等步骤存储,由ScheuleMessageService定时投递到目标Topic。代码案例展示了如何创建和消费延时消息。
摘要由CSDN通过智能技术生成

分布式消息队列RocketMQ

四、 RocketMQ应用

4.3)延时消息

4.3.1) 什么是延时消息

当消息写入到Broker后,在指定的时长后才可被消费处理的消息,称为延时消息。

采用RocketMQ的延时消息可以实现定时任务的功能,而无需使用定时器。典型的应用场景是,电商交易中超时未支付关闭订单的场景,12306平台订票超时未支付取消订票的场景。

在电商平台中,订单创建时会发送一条延迟消息;这条消息将会在30分钟后投递给后台业务系统(Consumer),后台业务系统收到该消息后会判断对应的订单是否已经完成支付。如果未完成,则取消订单将商品再次放回到库存;如果完成支付则忽略。

在12306平台中,车票预订成功后就会发送一条延迟消息。这条消息将会在45分钟后投递给后台业务系统(Consumer),后台业务系统收到该消息后会判断对应的订单是否已经完成支付。如果未完成则取消预订,将车票再次放回到票池;如果完成支付则忽略。

4.3.2) 延时等级

延时消息的延迟时长不支持随意时长的延迟,是通过特定的延迟等级来指定的。延时等级定义在 RocketMQ服务端的MessageStoreConfig类中的如下变量中:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值