目录
1.安装RabbitMQ
1.安装docker
https://blog.youkuaiyun.com/adminBfl/article/details/110442303
2.启动容器
# 为了给Docker中的容器分配固定的Docker内网IP地址,而且还跟其他现存的Docker容器IP不冲突,所以我们新# 创建一个Docker内网的网段。网络名字叫做mynet,网段是172.18.0.X,以后我们创建的容器都分配这个网段 的IP。需要注意,172.18.0.1是网关的IP,我们不能用。
docker network create --subnet=172.18.0.0/18 mynet
# -m 控制rabbit内存使用
docker run -it -d --name rabbitmq \
--net mynet --ip 172.18.0.11 -m 521m \
-e RABBITMQ_DEFAULT_USER=rabbitAdmin \
-e RABBITMQ_DEFAULT_PASS=rabbitAdmin123 \
-e TZ=Asia/Shanghai --privileged=true \
-p 15672:15672 -p 5672:5672 rabbitmq:3.8.11-management
3.访问管理端
http://localhost:15672/
2.安装延迟插件
1.插件下载地址
# 官网 https://github.com/rabbitmq/rabbitmq-delayed-message-exchange/releases # 3.8.9 https://github.com/rabbitmq/rabbitmq-delayed-message-exchange/releases/download/3.8.9/rabbitmq_delayed_message_exchange-3.8.9-0199d11c.ez
2.上传到消息容器内部
# 下载
wget https://github.com/rabbitmq/rabbitmq-delayed-message-exchange/releases/download/3.8.9/rabbitmq_delayed_message_exchange-3.8.9-0199d11c.ez
# copy到容器内部
docker cp rabbitmq_delayed_message_exchange-3.8.9-0199d11c.ez rabbitmq:/plugins
# 进入容器
docker exec -it rabbitmq /bin/bash
# 进入插件目录
cd plugins
# 启动插件
rabbitmq-plugins enable rabbitmq_delayed_message_exchange
Enabling plugins on node rabbit@31fe8868f46e: rabbitmq_delayed_message_exchange The following plugins have been configured: rabbitmq_delayed_message_exchange rabbitmq_management rabbitmq_management_agent rabbitmq_prometheus rabbitmq_web_dispatch Applying plugin configuration to rabbit@31fe8868f46e... The following plugins have been enabled: rabbitmq_delayed_message_exchange started 1 plugins. root@31fe8868f46e:/plugins#
3.重启容器
# 退出容器
exit
#使用容器名称重启容器
docker restart rabbitmq
3.spring配置
# spring 方式
spring-rabbitmq:
host: IP
port: 5672
username: user
password: admin123
vhost: vhost_admin
4.springboot配置
spring:
rabbitmq:
addresses: IP:5672
username: user
password: admin123
virtual-host: vhost_admin
connection-timeout: 15000
# ---生产者 start---
# 消息确认模式
publisher-confirms: true
# 返回模式
publisher-returns: true
template:
mandatory: true
# ---生产者 end---
# ---消费 start---
listener:
simple:
# 签收模式 手工签收
acknowledge-mode: manual
# 监听限制 默认 5最大 10
concurrency: 5
max-concurrency: 10