在RabbitMQ中,延迟队列是一种特殊的队列类型。当消息被发送到此类队列后,不会立即投递给消费者,而是会等待预设的一段时间,待延迟期满后才进行投递。这种队列在多种场景下都极具价值,比如可用于处理需要在特定时间触发的任务,实现对消息处理的限流,或者在消息发送失败后设置延迟重试等。
使用场景
- 定时任务: 例如发送提醒邮件或通知,确保在特定时间后再执行。
- 限流: 控制请求速率,防止瞬时高并发导致的系统崩溃。
- 重试机制: 在处理失败时,可以将消息延迟后重试,避免立即重试造成的负担。
第一步下载延迟插件
https://github.com/rabbitmq/rabbitmq-delayed-message-exchange/releases
注意:需要根据你自己的 RabbitMQ 服务器端版本选择相同版本的延迟插件,可以在 RabbitMQ 控制台查看: