RabbitMQ 延迟队列 踩坑之路

1、使用RabbitMQ的延迟队列实现消息的延迟发送。写了个demo,功能ok。

https://www.cnblogs.com/mfrank/p/11260355.html

 

2、实际使用时,发现有些消息没有按照指定的延迟时间被消费。

https://www.zhihu.com/question/65916221

 

google才知道,延迟队列有几个特性:1、先进先出;2、最前面的消息未被消费时,后面的消息即使到达了延迟时间,也不会被消费;

因此,对于不同的延迟时间的消息,不能投到同一个队列中。换句话说,针对不同的延迟时间,都要创建不同的队列。

不过,在实际业务中,肯定会有大量不同延迟时间的消息,为此创建很多个不同的队列,肯定不现实。肯定有别的、更合理的实现方式。

 

3、使用 rabbitmq-delayed-message-exchange 插件来实现。

具体的配置和实现方式,可参考如下博文

https://blog.csdn.net/u014308482/article/details/53036770

 

 

你可能感兴趣的:(Java语言,框架,体系,RabbitMq,延迟队列)