然後配置yml文件。
創建業務隊列和死信隊列
消費者正在使用死信隊列中的消息。
啟動服務後,您可以看到創建的交換機和隊列。
消息在到期後從prod_queue_pay隊列轉發到dl-queue隊列。很好地實現了消息延遲消耗。但是我們會發現壹個問題。通過設置隊列屬性的過期時間,如果我現在有不同的場景,比如5s後延遲消費,10s,15s,我需要創建三個隊列。每次都有來自不同時間段的需求,我需要創建壹個隊列,這肯定是不行的。
快速入口:/p /p/78354a3e35d0
發送消息時,通過在報頭中添加“x-delay”參數來控制消息的延遲時間。
啟動服務並登錄RabbitMQ管理界面。您可以看到交換機和隊列已經成功創建。
這種類型的郵件支持延遲傳遞機制。接收到消息後,並不立即投遞到目標隊列,而是存儲在mnesia(壹個分布式數據系統)表中檢測消息延遲時間,如達到可投遞時間,通過標記為x-delayed-type類型的交換機類型投遞到目標隊列。這些判斷和操作導致交換效率較低,如果不需要就不要使用插件式的延遲隊列。