RabbitMQ
RabbitMQ安装
1、概述
RabbitMQ是一款使用Erlang语言开发的,实现AMQP(高级消息队列协议)的开源消息中间件。首先要知道一些RabbitMQ的特点,官网可查:
- 可靠性。支持持久化,传输确认,发布确认等保证了MQ的可靠性。
- 灵活的分发消息策略。这应该是RabbitMQ的一大特点。在消息进入MQ前由Exchange(交换机)进行路由消息。分发消息策略有:简单模式、工作队列模式、发布订阅模式、路由模式、通配符模式。
- 支持集群。多台RabbitMQ服务器可以组成一个集群,形成一个逻辑Broker。
- 多种协议。RabbitMQ支持多种消息队列协议,比如 STOMP、MQTT 等等。
- 支持多种语言客户端。RabbitMQ几乎支持所有常用编程语言,包括 Java、.NET、Ruby 等等。
- 可视化管理界面。RabbitMQ提供了一个易用的用户界面,使得用户可以监控和管理消息 Broker。
- 插件机制。RabbitMQ提供了许多插件,可以通过插件进行扩展,也可以编写自己的插件。
1.1、官网地址
https://www.rabbitmq.com/download.html
1.2、文件上传
上传到/usr/local/rabbitmq目录下(如果没有rabbitmq需要自己创建)
1.3、安装文件(分别按照一下顺序安装)
rpm -ivh erlang-21.3-1.el7.x86_64.rpm
yum install socat -y
rpm -ivh rabbitmq-server-3.8.8-1.el7.noarch.rpm
- 执行
rpm -ivh erlang-21.3-1.el7.x86_64.rpm
- 执行
yum install socat -y
(我之前下载过socat了)
- 执行
rpm -ivh rabbitmq-server-3.9.13-1.el7.noarch.rpm
1.4、常用命令(按照一下顺序执行)
添加开机启动RabbitMQ服务
- systemctl enable rabbitmq-server
启动服务
- systemctl start rabbitmq-server
查看服务状态
- systemctl status rabbitmq-server
停止服务
- systemctl stop rabbitmq-server stop
开启web管理插件
- rabbitmq-plugins enable rabbitmq_management
- 之后在浏览器输入:http://ip地址:15672即可访问web后台管理界面
1.5、添加一个新用户
创建账号
- rabbitmqctl add_user admin 123
设置用户角色
- rabbitmqctl add_user_tags admin administrator
设置用户权限
- set_permissions [-p <\vhostpath>] <\user> <\conf> <\write> <\read>
- rabbitmqctl set_permissions -p "/" admin "." "." ".*"
- 用户user_admin具有/vhost1这个virtual host中所有资源的配置、写、读权限
当前用户和角色
- rabbitmqctl list_users
- 再次利用admin用户登录
重置命令
关闭应用的命令为
- rabbitmqctl stop_app
清楚命令为
- rabbitmqctl reset
重新启动的命令为
- rabbitmqctl start_app
2、Docker安装RabbitMQ
2.1、下载地址
https://www.rabbitmq.com/download.html
2.2、开始安装
yum 包更新到最新
yum update
安装需要的软件包 yum-util 提供yum-config-manager功能, 另外两个是devicemapper驱动依赖的包
yum install -y yum-utils device-mapper-persistent-data lvm2
设置源为阿里云
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
全局安装docker
yum install docker-ce -y
查看docker的版本号
docker -v
安装加速镜像
vim /etc/docker/daemon.json
{ "registry-mirrors": ["http://hub-mirror.c.163.com", "https://docker.mirrors.ustc.edu.cn"] }
重新加载镜像配置
systemctl daemon-reload
重启docker
systemctl restart docker
启动docker服务
systemctl start docker
查看状态
systemctl status docker
开机自启动
systemctl enable docker
创建并运行容器
docker run -di --name myrabbit -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=******** -p 15672:15672 -p 5672:5672 -p 25672:25672 -p 61613:61613 -p 1883:1883 rabbitmq:3-management # 参数 -p为:端口号 # 参数 --name为容器名称 # 参数 -e RABBITMQ_DEFAULT_USER是设置用户名 -e RABBITMQ_DEFAULT_PASS是设置密码 # rabbitmq:3-management 直接安装rabbitmq和web管理界面
查看进程ID
docker ps -a
查看镜像
docker images
在docker中启动rabbitmq
docker start ID
2.3、安装完成
2.3.1、初始化用户无法登录(guest/guest)
3.X以后RabbitMQ官方不再支持默认用户等录
2.3.2、添加新用户
# 创建账号
rabbitmqctl add_user admin 123
#设置用户角色
rabbitmqctl add_user_tags admin administrator
2.3.3、设置用户权限
# set_permissions [-p <vhostpath>] <user> <conf> <write> <read>
rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"
# 用户user_admin具有/vhost1这个virtual host中所有资源的配置、写、读权限
2.3.4、再次使用添加的用户登录即可
2.4、补充说明
如果采用以下方式安装则可以不用添加新用户
docker run -di --name myrabbit
-e RABBITMQ_DEFAULT_USER=admin
-e RABBITMQ_DEFAULT_PASS=********
-p 15672:15672
-p 5672:5672
-p 25672:25672
-p 61613:61613
-p 1883:1883
rabbitmq:3-management
直接可以给用户设置权限然后进行登录