問題思考
- 延遲隊列的應用場景
- 延遲級別是如何配置的?
- 如何發送延遲消息?
- 延遲消息的實現原理
應用場景
- 超時未支付訂單處理場景
- 短信延遲發送
延遲級別是如何配置的
在服務端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);
延遲消息實現原理
參考: 延遲隊列實現原理