延迟插件的作用:
比如消息的延迟推送、定时任务(消息)的执行。包括一些消息重试策略的配合使用,以及用于业务削峰限流、降级的异步延迟消息机制,都是延迟队列的实际应用场景。
延迟插件的安装:
1. 下载插件:http://www.rabbitmq.com/community-plugins.html
2. 在指定目录下载该插件:/usr/lib/rabbitmq/lib/rabbitmq_server-3.6.5/plugins 目录下执行
wget https://dl.bintray.com/rabbitmq/community-plugins/3.6.x/rabbitmq_delayed_message_exchange/rabbitmq_delayed_message_exchange-20171215-3.6.x.zip
解压:unzip rabbitmq_delayed_message_exchange-20171215-3.6.x.zip
3. 查看所有插件: rabbitmq-plugins list
启动延时插件:rabbitmq-plugins enable rabbitmq_delayed_message_exchange
4. 访问地址: http://{ip}:15672/#/exchanges
在新增交换机这里,发现多了一个类型
新增一个队列 test.delay.queue
交换机绑定队列
交换机绑定队列成功
Java 代码: https://github.com/hmilyos/rabbitmq-common.git delay 分支
首先是配置 application.properties
spring.rabbitmq.addresses=120.79.151.132:5672
spring.rabbitmq.username=guest
spring.rabbitmq.password=guest
spring.rabbitmq.virtual-host=/
spring.rabbitmq.connection-timeout=15000
spring.rabbitmq.publisher-confirms=true
spring.rabbitmq.publisher-returns=true
spring.rabbitmq.template.mandatory=true
接着是声明交换机、队列、绑定关系
生产端代码
消费端代码
接口调用
启动 springboot 项目,然后上管控台页面 确认交换机、队列、绑定关系是否创建成功了
验证交换机、队列、绑定关系声明创建成功后,
调用测试接口: http://localhost:8030/testDelayMsg?title=this-is-delay-msg 注意看控制台输出