SpringBoot+RabbitMQ 实现延迟队列

2,094 total views, 3 views today

RabbitMQ 实现延迟队列,方法有两种。
第一种是安装延迟队列插件;
第二种就是利用死信队列的方式;
这里采用第二种方式。
rabbitmq 自身的一些概念,可以去网上或者书上获得。rabbitmq 延迟队列的实现原理,网上资料很多,简单盗图一张。

简单说明一下原理。
将消息发送到一个队列中去,消息自身有一个 TTL,即失效时间,如果到期还是为消费该消息,那么该消息就成为死信,将死信移到专门的死性队列,然后消费者只需要消费死信队列中的消息,变相的实现了延迟消息的功能。
基于 Springboot 的具体代码实现:

POM

配置文件:

配置文件 TopicRabbitConfig.Java

监听代码:

上面 2 段代码,实现的效果就是如下:

发送消息的代码:RabbitMQTopicSender.java

至此调用 send 方法,即可发送延迟队列。
以上代码亲测有效。

原创文章,转载请注明出处!http://www.javathings.top/springbootrabbitmq实现延迟队列/

About: wusq


发表评论

电子邮件地址不会被公开。 必填项已用*标注