RocketMQ-延遲隊列

問題思考

  1. 延遲隊列的應用場景
  2. 延遲級別是如何配置的?
  3. 如何發送延遲消息?
  4. 延遲消息的實現原理

應用場景

  1. 超時未支付訂單處理場景
  2. 短信延遲發送

延遲級別是如何配置的

在服務端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);

 延遲消息實現原理

參考: 延遲隊列實現原理

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章