rabbitmqspringcloudJ2EE

RabbitMQ 延迟队列插件应用 以及 java 代码使用延迟

2019-01-08  本文已影响0人  HmilyMing

延迟插件的作用:

    比如消息的延迟推送、定时任务(消息)的执行。包括一些消息重试策略的配合使用,以及用于业务削峰限流、降级的异步延迟消息机制,都是延迟队列的实际应用场景。

延迟插件的安装:

    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

新增一个队列  test.delay.queue

交换机绑定队列

交换机绑定队列

交换机绑定队列成功

交换机绑定队列成功 在交换机里面发消息 验证是否延迟 20 s

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

接着是声明交换机、队列、绑定关系

声明交换机、队列、绑定关系

生产端代码

生产端代码

消费端代码

消费端代码

接口调用

http接口

启动 springboot 项目,然后上管控台页面 确认交换机、队列、绑定关系是否创建成功了

验证交换机、队列、绑定关系声明创建成功后,
调用测试接口: http://localhost:8030/testDelayMsg?title=this-is-delay-msg   注意看控制台输出

延迟消息发送和接收成功
上一篇 下一篇

猜你喜欢

热点阅读