1.准备
你得有能正常运行的docker
2.拉取镜像
搜索一下镜像 不搜索也行
docker search rabbitmq
拉取镜像
docker pull rabbitmq
拉取指定版本镜像
docker pull rabbitmq:version
查看镜像
docker images
3安装rabbitmq
如果你不需要挂载目录,直接运行
docker run -d \
-p 5672:5672 -p 15672:15672 --name rabbitmq --restart=always \
--hostname myRabbit rabbitmq
如果要挂载目录 保存数据到centos
首先创建目录
mkdir /opt/rabbitmq/data
然后启动mq实例
docker run -d \
-v /opt/rabbitmq/data:/var/lib/rabbitmq \
-p 5672:5672 -p 15672:15672 --name rabbitmq --restart=always \
--hostname myRabbit rabbitmq:3-management
4启动rabbitmq管理界面
# 启动rabbitmq_management, rabbitmq 为容器的名称,使用id也可以
docker exec -it rabbitmq rabbitmq-plugins enable rabbitmq_management
# ip+端口号登录,用户名和密码默认都是guest
# 这句话要在mq启动后执行 每次重启容器实例 都要重新执行
- 浏览器访问http://localhost:15672
- 初始账号密码 guest guest
4.1创建用户
点击界面的add a user
填写信息
注意这里的tags 是用户的角色 我这里选择admin这样才能够登录管理界面
我这里已经创建 过了root
4.2用户赋权
点击用户名进入用户详情
点击set permission即可
退出登录该账户即可完成
5创建交换机
基本概念了解
Connection:与RabbitMQ服务器的连接
Exchange :交换机
Channel:与Exchange的连接
routing key:路由键,生产者发送消息的时候可以带上路由键发送给交换器
BindingKey:绑定键,交换机与队列之间的绑定关系
broker:服务器端
binding:队列和交互机的根据路由键映射的关系
这里就是交换机的设置
Name: | 交换机名称,同一个Virtual host里面的Name不能重复。 |
---|---|
Type: | 交换机的模式 可以自行百度 |
Durability: | 是否持久化 (Durable:持久化,Transient:不持久化)。 |
Auto delete: | 当最后一个绑定(队列或者exchange)被unbind之后,该exchange自动被删除。 |
Internal: | 是否是内部专用exchange,是的话,就意味着我们不能往该exchange里面发消息。 |
Arguments: | 参数,是AMQP协议留给AMQP实现做扩展使用的。alternate_exchange配置的时候,exchange根据路由路由不到对应的队列的时候,这时候消息被路由到指定的alternate_exchange的value值配置的exchange上。 |
注意: 创建完成后点击交换机名称进入交换机详情,会出现Management API returned status code 500 -
**解决链接:**https://blog.csdn.net/zhiyikeji/article/details/124178809
解决方案如下:
进入容器:
docker exec -it rabbitmq的镜像id /bin/bash
cd到目录/etc/rabbitmq/conf.d/,然后执行以下命令:
echo management_agent.disable_metrics_collector = false > management_agent.disable_metrics_collector.conf
然后重启容器即可
6创建队列
7绑定交换机和队列
当然这里是我使用 ,看你具体使用的是那种模式,