Docker之安装RabbitMq

本文介绍使用Docker搭建RabbitMQ消息中间件的方法。先通过docker search和pull获取镜像,创建并运行容器,挂载到指定目录,查看日志确认安装成功。还介绍了添加用户、授权等操作,以及访问Web界面和添加新账户。最后讲解了direct、fanout、topic三种常用发布订阅模式。

一、前言

rabbitMQ是一款开源的高性能消息中间件,常用作消息队列暂存,异步处理,发布/订阅也可以用作RPC调用,下面带大家使用docker搭建,快速方便

二、获取镜像

1、使用docker search rabbitMq命令获取镜像列表

 2、拉取镜像
  • 方式一(指定镜像文件中拉取指定版本):sudo docker pull 镜像地址/rabbitmq:版本-management

docker pull docker.io/rabbitmq:3.8-managemen

3.8版本是STARS数最多的官方镜像。此处需要注意,默认rabbitmq镜像是不带web端管理插件的,所以指定了镜像tag为3.8-management,表示下载包含web管理插件版本镜像,其它Tag版本可以访问DockerHub查询

DockerHub

  • 方式二(默认镜像地址中拉取最新版本)

sudo docker pull rabbitmq:management

3、创建rabbitMq容器

使用sudo docker images查看rabbtiMq镜像ID

 4、运行并挂载到指定目录

sudo docker run -d --name rabbitmq \
-p 5671:5671 -p 5672:5672 -p 4369:4369 \
-p 15671:15671 -p 15672:15672 -p 25672:25672 \
rabbitmq:management

运行并挂载到指定目录,实现RabbitMq自动启动

sudo docker run -d --name rabbitmq --restart=always -p 5671:5671 -p 5672:5672 -p 4369:4369 -p 15671:15671 -p 15672:15672 -p 25672:25672 rabbitmq:management

  • 端口说明

4369:erlang发现端口

5672:amqp客户端端口

15672:http管理界面端口

25672:clustering服务端内部通信端口

执行docker ps可以查看正在运行的容器,我们能看到rabbitMq已经运行

 5、查看容器日志

使用docker logs -f [container/id]命令可以查看容器日志,我们执行docker logs -f 3ae命令查看rabbitMq在启动过程中日志,3ae是容器ID的简写——容器ID太长,使用时其写前几位即可

启动日志

 从日志可以看出,rabbitMq默认创建了guest用户,并且赋予administrator角色权限,同时服务监听5672端口TCP连接和15672端口的HTTP连接,至此说明安装成功。

6、进入容器

docker exec -it 容器名 bash

7、添加用户(默认guest),进入容器后操作

rabbitmqctl add_user [username] [password]

8、授权

rabbitmqctl set_permissions -p / root ".*" ".*" ".*"

9、角色

rabbitmqctl set_user_tags root administrator

10、查看用户

rabbitmqctl list_users

三、访问rabbitMq

1、访问web界面

在浏览器 输入你的主机Ip:15672回车即可访问rabbitMq的Web端管理界面,默认用户名和密码都是guest,如图出现如下界面代表已经成功了。

在这里插入图片描述

 2、新添加一个账户

默认的guest 账户有访问限制,默认只能通过本地网络(如 localhost) 访问,远程网络访问受限,所以在使用时我们一般另外添加用户,例如我们添加一个root用户:

  • 执行docker exec -i -t 3ae bin/bash进入到rabbitMq容器内部
[root@localhost docker]# docker exec -i -t 3a bin/bash
root@3ae75edc48e2:/# 
  • 执行rabbitmqctl add_user root 123456 添加用户,用户名为root,密码为123456
root@3ae75edc48e2:/# rabbitmqctl add_user root 123456 
Adding user "root" ...
  • 执行abbitmqctl set_permissions -p / root ".*" ".*" ".*" 赋予root用户所有权限
root@3ae75edc48e2:/# rabbitmqctl set_permissions -p / root ".*" ".*" ".*"
Setting permissions for user "root" in vhost "/" ...
  • 执行rabbitmqctl set_user_tags root administrator赋予root用户administrator角色
root@3ae75edc48e2:/# rabbitmqctl set_user_tags root administrator
Setting tags for user "root" to [adminstrator] ...
  • 执行rabbitmqctl list_users查看所有用户即可看到root用户已经添加成功
root@3ae75edc48e2:/# rabbitmqctl list_users
Listing users ...
user	tags
guest	[administrator]
root	[administrator]

执行exit命令,从容器内部退出即可。这时我们使用root账户登录web界面也是可以的。到此,rabbitMq的安装就结束了,接下里就实际代码开发。

3、常用发布订阅模式
direct

特点:点对点发送消息

示例:

  • 创建direct交换机Add a new exchange:direct-exchange01

  • 创建队列Add a new queue:queue01,queue02

  • 交换机与队列绑定Bindings

  • 测试Publish message

注意:ACK标识接收并消费消息,NACK则相反,消息仍在队列中

fanout

特点:不论rountkey,所有队列都可接收消息

topic

特点:根据键名匹配所有符合的队列

  • 交换机:topic-exchange01
  • 绑定队列
    • queue01: prekey01.# 前缀为prekey01的所有队列接收消息,#标识匹配一个或多个单词,*标识匹配一个
    • queue02: #.sufkey02后缀为sufkey02的所有队列接收消息
    • queue03: #.sufkey03后缀为sufkey03的所有队列接收消息
  • 测试

只有queue01收到

 只有queue02收到

 queue01,queue03收到

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

双木林L

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值