主要总结自:Centos7 安装 RabbitMQ
1、安装前准备
由于RabbitMQ
使用的是Erlang
语言开发的,因此在安装RabbitMQ
之前需要安装Erlang
环境,Erlang
与RabbitMQ
的下载地址分别为:
Erlang
:https://github.com/rabbitmq/erlang-rpm/releases
RabbitMQ
:https://github.com/rabbitmq/rabbitmq-server/releases
注意:
RabbitMQ
与Erlang
安装时是有版本对于关系,可以查看:https://www.rabbitmq.com/which-erlang.html
从版本对应关系可以看出,RabbitMQ
的最新3.9.13
需要Erlang
的最低23.2
版本,另外下载的时候还需要注意一点,安装的系统为Centos7
,因此在下载RabbitMQ
与Erlang
版本的时候需要下载xxx.el7
的版本,我这里下载版本如下:
rabbitmq-server-3.9.13-1.el7.noarch.rpm
erlang-23.3.4.11-1.el7.x86_64.rpm
将下载好的文件上传到服务器。
2、安装 Erlang
使用如下命令安装Erlang
:
rpm -ivh erlang-23.3.4.11-1.el7.x86_64.rpm
执行命令后,如果出现这样的提示,则需要根据提示下载对应的依赖。
我这里安装提示缺少了libcrypto.so.10(OPENSSL_1.0.2)(64bit)
依赖,可以到 https://pkgs.org/ 下载。
将下载好的版本上传到服务器通过如下命令进行安装:
rpm -ivh openssl-libs-1.0.2k-19.el7.x86_64.rpm --force
安装结果:
再执行安装Erlang
命令,出现如下结果则表示安装成功:
可以使用命令erl -version
查看Erlang
版本。
3、安装 RabbitMQ
上一步我们已经把Erlang
安装成功,现在安装RabbitMQ
,如下:
rpm -ivh rabbitmq-server-3.9.13-1.el7.noarch.rpm
检查是否安装成功rabitmqctl version
:
4、运行 RabbitMQ 服务器
4.1、启动服务器
-
添加开机启动
RabbitMQ
服务chkconfig rabbitmq-server on
-
启动启动
systemctl start rabbitmq-server
-
查看服务器状态
systemctl status rabbitmq-server
如上结果表示
RabbitMQ
服务已经成功启动 -
停止服务器
systemctl stop rabbitmq-server
4.2、安装 WEB 插件
RabbitMQ
默认提供了WEB
插件,方便通过页面进行RabbitMQ
管理,需要执行如下命令启用WEB
插件,启用之前如果RabbitMQ
服务已经启动,则先停止服务。
rabbitmq-plugins enable rabbitmq_management
重新启动RabbitMQ
服务,通过地址:http://<IP>:15672 然后访问RabbitMQ
:
RabbitMQ
默认提供了一个guest
账户(密码即guest
),默认的账户没有权限登录不了,因此接下来我们需要创建用户。
4、配置用户
-
创建账号
rabbitmqctl add_user admin 123456
-
设置用户角色
rabbitmqctl set_user_tags admin administrator
-
设置用户权限
命令格式:
rabbitmqctl set_permissions [-p <vhostpath>] <user> <conf> <write> <read>
rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"
上面命令表示用户具有
/
这个virtual host
中的所有资源配置、读、写权限。 -
查看用户和角色
rabbitmqctl list_users
可以看到用户已经添加成功并设置了角色,现在就可以使用用户登录
RabbitMQ
了。 -
删除用户
rabbitmqctl delete_user guest
5、从 WEB 配置用户及虚拟主机
来源于网络课程
用户角色
也可以登录管理界面管理用户和角色,如下操作(这里为旧版本的 RabbitMQ 演示,guest 可登录):
角色说明:
1、超级管理员 (administrator)
可登陆管理控制台,可查看所有的信息,并且可以对用户,策略 (policy) 进行操作。
2、监控者 (monitoring)
可登陆管理控制台,同时可以查看 rabbitmq 节点的相关信息 (进程数,内存使用情况,磁盘使用情况等)
3、策略制定者 (policymaker)
可登陆管理控制台,同时可以对 policy 进行管理。但无法查看节点的相关信息 (上图红框标识的部分)。
4、普通管理者 (management)
仅可登陆管理控制台,无法看到节点信息,也无法对策略进行管理。
5、其他
无法登陆管理控制台,通常就是普通的生产者和消费者。
Virtual Hosts 配置
像 MySQL 拥有数据库的概念并且可以指定用户对库和表等操作的权限。RabbitMQ 也有类似的权限管理;在 RabbitMQ 中可以虚拟消息服务器 Virtual Host,每个 Virtual Hosts 相当于一个相对独立的 RabbitMQ 服务器,每个 VirtualHost 之间是相互隔离的。exchange、queue、message 不能互通。相当于 MySQL 的 db。Virtual Name 一般以 / 开头。