今天给大家分享以下三部分内容:
Docker 安装 RabbitMQ
Spring Boot and RabbitMQ demo
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:默认用户名的密码)
依赖
<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?key=item.test&msg=Hello
首先来看一个错:
channel error; protocol method: #method<channel.close>(reply-code=404, reply-text=NOT_FOUND - no
原因是,延迟队列是 RabbitMQ 的一个插件,默认没有安装,需要安装。
相关链接:
RabbitMQ 插件:https://www.rabbitmq.com/community-plugins.html
延迟插件:https://github.com/rabbitmq/rabbitmq-delayed-message-exchange/releases
安装插件:
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/sendDelayMsg/10000/iPhone13