RabbitMQ实现延时队列基本上有以下两种方式:
用TTL和死信队列
- TTL在消息发送到队列时 Neng设置一个TTL,表示这条消息在队列中存活的时候。Ru果TTL到了消息就会变成死信,并投递到死信队列。
- 死信队列创建一个死信队列,用于接收全部过期的消息。通过监听这玩意儿死信队列,Neng在消息过期后进行相应的处理。
用RabbitMQ延迟队列插件
- RabbitMQ从3.6.x版本开头给了官方的延迟队列插件。用这玩意儿插件Neng非常方便地创建和管理延迟队列。
- 创建一个延迟交换器,它允许发送延迟消息。在消息发送时指定延迟时候,消息将在指定时候后到达队列。
- 场景延时队列适用于需要延迟处理的消息, 如订单超时、定时任务等。
- 实现
- 用TTL和死信队列时 需要在发送消息时设置TTL,并在消费者端监听死信队列。
- 用延迟队列插件时 创建一个延迟交换器,并将消息发送到对应的队列,RabbitMQ会自动处理延迟。
- 注意事项
- 延迟队列的延迟时候得根据业务需求合理设置。
- 注意消息的延迟时候兴许受到RabbitMQ集群性Neng等因素的关系到。
- 需要考虑消息的持久化,确保消息不会基本上原因是系统故障而丢失。
通过以上两种方式,Neng在RabbitMQ中实现延时队列,搞优良系统的性Neng和可
性。