天天看點

RocketMq發送延遲消息

什麼是延遲消息?

對于消息中間件來說,producer将消息發送到mq的伺服器,但并不期望這條消息馬上被消費,而是推遲到目前時間點之後的某個時間點後再投遞到queue中讓consumer進行消費,延遲消息的使用場景很多,一種比較常見的場景就是在電商系統中,訂單建立後,會有一個等待使用者支付的時間視窗,一般為30分鐘,30分鐘後consumer收到這條訂單消息,然後程式去訂單表中檢查目前這條訂單的支付狀态,如果是未支付的狀态,則自動清理掉,這樣就不需要使用定時任務的方式去處理了,示意圖如下,

RocketMq發送延遲消息

RocketMQ 支援定時消息,但是不支援任意時間精度,僅支援特定的 level,例如定時 5s, 10s, 1m 等。其中,level=0 級表示不延時,level=1 表示 1 級延時,level=2 表示 2 級延時,以此類推

如何配置

1、可以直接在伺服器端的broker.conf中進行配置,

在伺服器端(rocketmq-broker端)的屬性配置檔案中加入以下行:

messageDelayLevel=