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

相关推荐
皮皮冰燃5 小时前
docker-18-WSL中安装docker并部署flask服务
docker·容器·flask
少年白char5 小时前
整理上万首音乐后的完整工作流:下载、刮削、播放与避坑指南
docker·nas·musictag·音乐刮削·音乐标签
萧行之12 小时前
Docker部署Loki+Grafana+Vector实现全服务器日志监控(含N8N/SSH/Fail2ban监控)
服务器·docker·grafana
人工智能培训13 小时前
工程科研中的AI应用:结构力学分析技巧
人工智能·深度学习·机器学习·docker·容器
计算机安禾14 小时前
【Linux从入门到精通】第35篇:容器化技术预备——Docker安装与基本概念
linux·运维·docker
子木HAPPY阳VIP14 小时前
信创UOS,Docker 完整操作部署(Dockerfile部署方式)&排错整合
linux·运维·redis·nginx·docker·容器·tomcat
AI服务老曹15 小时前
架构实战:基于 GB28181 与 RTSP 的异构设备统一接入方案,深度解析 Docker 化 AI 视频管理平台
人工智能·docker·架构
叶总没有会15 小时前
Docker:项目部署
运维·docker·容器
爱学习 爱分享15 小时前
docker 本地装瀚高 4.5 数据库
数据库·docker·容器
叶总没有会16 小时前
Docker入门
运维·docker·容器