乐趣区

关于springboot:Spring-Boot-and-RabbitMQ-初探

概述

明天给大家分享以下三局部内容:

  • Docker 装置 RabbitMQ
  • Spring Boot and RabbitMQ demo
  • RabbitMQ 提早队列

Docker 装置 RabbitMQ

第一步:拉取镜像

docker pull rabbitmq:management

第二步:启动

docker run -d \
--name rabbitmq \
-p 5672:5672 \
-p 15672:15672 \
-v /data/rabbitmq:/var/lib/rabbitmq \
--hostname myRabbit \
-e RABBITMQ_DEFAULT_VHOST=my_vhost \
-e RABBITMQ_DEFAULT_USER=admin \
-e RABBITMQ_DEFAULT_PASS=admin \
rabbitmq:management

阐明:

-d 后盾运行容器;

–name 指定容器名;

-p 指定服务运行的端口(5672:利用拜访端口;15672:控制台 Web 端口号);

-v 映射目录或文件;

–hostname 主机名(RabbitMQ 的一个重要注意事项是它依据所谓的“节点名称”存储数据,默认为主机名);

-e 指定环境变量;(RABBITMQ_DEFAULT_VHOST:默认虚拟机名;RABBITMQ_DEFAULT_USER:默认的用户名;RABBITMQ_DEFAULT_PASS:默认用户名的明码)

Spring Boot and RabbitMQ demo

依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-amqp</artifactId>
</dependency>

配置

spring:
  rabbitmq:
    host: localhost
    port: 5672
    username: admin
    password: admin
    virtual-host: my_vhost

配置

发送

接管

测试

GET http://localhost:8080/sendMsg…

RabbitMQ 提早队列

首先来看一个错:

channel error;protocol method: #method(reply-code=404, reply-text=NOT_FOUND – no

起因是,提早队列是 RabbitMQ 的一个插件,默认没有装置,须要装置。

相干链接:

  • RabbitMQ 插件:https://www.rabbitmq.com/comm…
  • 提早插件:https://github.com/rabbitmq/r…

装置插件:

  • 1. 下载提早队列插件
  • 2. 将插件复制到 RabbitMQ 的 /plugins 目录下。拷贝办法:docker cp rabbitmq_delayed_message_exchange-3.10.2.ez containerId:/plugins
  • 3. 执行,在 /plugins 目录下执行:rabbitmq-plugins enable rabbitmq_delayed_message_exchange
  • 4. 重启 RabbitMQ

配置:

发送

接管音讯:

测试:

GET http://localhost:8080/sendDel…

退出移动版