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并安装延迟插件

相关推荐
iangyu2 小时前
docker常用命令
运维·docker·容器
张某布响丸辣2 小时前
探索消息中间件:RabbitMQ深度解析
分布式·rabbitmq
wclass-zhengge3 小时前
RabbitMQ篇(死信交换机)
分布式·rabbitmq
黄尚圈圈5 小时前
快速理解mQ(三)——RabbitMQ 各种交换机的区别与应用
分布式·rabbitmq
老齐谈电商5 小时前
开源电商erp系统启航电商ERP系统centos Docker部署
docker·开源·centos
-$_$-6 小时前
【黑马点评】 使用RabbitMQ实现消息队列——1.Docker与RabbitMQ环境安装
分布式·docker·rabbitmq
芯的一天6 小时前
windows下DockerDesktop命令行方式指定目录安装
windows·docker
帅气的人1237 小时前
使用 docker-compose 启动 es 集群 + kibana
elasticsearch·docker
獨枭8 小时前
Ubuntu 通过 Docker 搭建 GitLab
ubuntu·docker·gitlab
zixingcai9 小时前
dockertop提示Failed to fetch extensions
docker