docker 安装 RabbitMQ & 安装 rabbitmq_delayed_message_exchange插件

docker 安装 RabbitMQ

1. 获取镜像

指定版本,该版本包含了web控制页面

bash 复制代码
docker pull rabbitmq:management

2. 运行镜像

方式一:默认guest 用户,密码也是 guest

bash 复制代码
docker run -d --hostname my-rabbit --name rabbit -p 15672:15672 -p 5672:5672 rabbitmq:management

方式二:设置用户名和密码

bash 复制代码
docker run -d --hostname my-rabbit --name rabbit -e RABBITMQ_DEFAULT_USER=user -e RABBITMQ_DEFAULT_PASS=password -p 15672:15672 -p 5672:5672 rabbitmq:management

3. 访问URL页面

使用浏览器访问 http://localhost:15672/,显示RabbitMQ标志说明安装成功。

下载延迟插件

查看镜像的信息以获取版本号

bash 复制代码
docker inspect rabbitmq:management


根据版本号下载延迟插件,前往 Community Plugins

笔者的RabbitMQ 版本是3.13.0,所以这里选择下载3.13.0版本的插件

将插件文件上传到服务器,笔者是直接上传到/root下了

安装延迟插件并启用

将刚刚上传的插件拷贝到容器内plugins目录下

bash 复制代码
docker cp /root/rabbitmq_delayed_message_exchange-3.13.0.ez rabbit:/plugins

我刚刚是将插件上传到/root下了; rabbit是容器的name,也可以使用容器id

进入到RabbitMQ容器内部

bash 复制代码
docker exec -it rabbit /bin/bash

查看插件是否存在

复制代码
root@my-rabbit:/# cd plugins
root@my-rabbit:/plugins# ls | grep delay

启用插件(注意是在plugins内)

复制代码
root@my-rabbit:/plugins# rabbitmq-plugins enable rabbitmq_delayed_message_exchange

从容器中退出

复制代码
root@my-rabbit:/plugins# exit

重启RabbitMQ容器

bash 复制代码
docker restart rabbit

容器启动成功之后,登录RabbitMQ的管理界面(IP:15672 访问web界面),找到ExchangesTab页。点击Add a new exchange,在Type里面查看是否有x-delayed-message选项,如果存在就代表插件安装成功。

测试程序(核心部分)

监听端

java 复制代码
@RabbitListener(bindings = @QueueBinding(
        value = @Queue(value = "delay.queue", durable = "true"),
        exchange = @Exchange(value = "delay.direct", delayed = "true"),
        key = "hi"
))
public void listenDelayQueue(String msg) {
    log.info("消费者接收到delay.queue的消息:[" + msg + "]");
}

消息发送端

java 复制代码
@Test
public void testSendDelayMessage() {
     rabbitTemplate.convertAndSend("delay.direct", "hi", "hello", new MessagePostProcessor() {
         @Override
         public Message postProcessMessage(Message message) throws AmqpException {
             message.getMessageProperties().setDelay(10000);
             return message;
         }
     });
     log.info("消息发送成功!");
 }

参考链接:Docker安装RabbitMQ并安装延迟插件

相关推荐
小义_19 分钟前
【Docker】知识一
linux·docker·云原生·容器
serve the people1 小时前
python环境搭建 (五) Dockerfile 和 docker-compose.yml 核心作用
java·python·docker
Byte Beat1 小时前
使用docker单机部署kafka,以KRaft模式运行,不使用zookeeper,
docker·kafka·kraft
礼拜天没时间.1 小时前
Docker基础操作——镜像与容器管理
linux·运维·服务器·docker·容器·centos
fen_fen1 小时前
Docker MongoDB 配置 0.0.0.0 监听(外部可访问)操作文档
mongodb·docker·eureka
BLUcoding1 小时前
Docker 离线安装和镜像源配置
java·docker·eureka
Swift社区2 小时前
Docker Compose 一键部署前后端分离项目
运维·docker·容器
坊钰2 小时前
【Rabbit MQ】Rabbit MQ 的结构详解,传输机制!!!
java·rabbitmq
请叫我头头哥12 小时前
SpringBoot进阶教程(八十九)rabbitmq长链接及域名TTL,多机房切换配置重连能力
rabbitmq·springboot
大佐不会说日语~14 小时前
使用Docker Compose 部署时网络冲突问题排查与解决
运维·网络·spring boot·docker·容器