一、前言
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:
- 测试
只有queue01收到
只有queue02收到
queue01,queue03收到文章来源:https://www.toymoban.com/news/detail-778142.html
文章来源地址https://www.toymoban.com/news/detail-778142.html
到了这里,关于Docker之安装RabbitMq的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!