【 RocketMQ —— 05 延迟消息】

1. 生产延迟消息

生产延迟消息时,需要设置消息的延迟级别。RocketMQ默认提供18个延迟级别,每个级别对应不同的延迟时间:

延迟级别延迟时间
11s
25s
310s
430s
51m
62m
73m
84m
95m
106m
117m
128m
139m
1410m
1520m
1630m
171h
182h

生产者代码

import org.apache.rocketmq.client.producer.SendResult;
import org.apache.rocketmq.spring.core.RocketMQTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class RocketMQDelayProducer {

    @Autowired
    private RocketMQTemplate rocketMQTemplate;

    public void sendDelayMessage(String topic, String message, int delayLevel) {
        rocketMQTemplate.syncSend(topic, MessageBuilder.withPayload(message).build(), 3000, delayLevel);
    }
}

在这个例子中,delayLevel参数指定了消息的延迟级别。

2. 消费延迟消息

消费延迟消息与普通消息没有区别。消费者代码如下:

import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
import org.apache.rocketmq.spring.core.RocketMQListener;
import org.springframework.stereotype.Service;

@Service
@RocketMQMessageListener(topic = "your-topic", consumerGroup = "your-consumer-group")
public class DelayConsumer implements RocketMQListener<String> {

    @Override
    public void onMessage(String message) {
        System.out.println("Delay Consumer received: " + message);
        // Process the message
    }
}

注意事项

  1. 延迟级别:RocketMQ只支持预定义的延迟级别,无法自定义任意延迟时间。
  2. 消息重试:延迟消息在重试机制中也会遵循延迟级别进行重试。
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值