问题思考
- 延迟队列的应用场景
- 延迟级别是如何配置的?
- 如何发送延迟消息?
- 延迟消息的实现原理
应用场景
- 超时未支付订单处理场景
- 短信延迟发送
延迟级别是如何配置的
在服务端Broker的属性配置文件中加入
messageDelayLevel=1s 5s 10s 30s 1m 2m 3m 4m 5m 6m 7m 8m 9m 10m 20m 30m 1h 2h
该配置描述了延迟级别与延迟时间的对应关系
这个配置项配置了从1级开始,各级延时的时间,可以修改这个指定级别的延时时间; 时间单位支持:s、m、h、d,分别表示秒、分、时、天; 默认值就是上面声明的,可手工调整;
如何发送延迟消息
发送延迟消息只需在Producer待发送消息( org.apache.rocketmq.common.message.Message)中设置延迟级别
msg.setDelayTimeLevel(3);
延迟消息实现原理
参考: 延迟队列实现原理