CentOS7安装RabbitMQ(单机)
个人博客
- Linux版本:CentOS 7
- RabbitMQ版本:3.7.14
- Erlang版本:20.3.4
- socat版本:1.7.3.2
说明:
- 由于
RabbitMQ
是基于Erlang
语言开发,所以在安装RabbitMQ
之前, 需要先安装Erlang
;RabbitMQ
和Erlang
版本需要对应,可以参考官网给出的列表:https://www.rabbitmq.com/which-erlang.html RabbitMQ
需要socat
依赖,所以需要安装socat
。
1、安装包下载安装
1.1、下载安装socat
1 | 下载 |
1.2、下载安装Erlang
github下载地址:https://github.com/rabbitmq/erlang-rpm/tags
选择版本20.3.4
下载rpm
安装包。
1 | 安装 |
1.3、下载安装RabbitMQ
github下载地址:https://github.com/rabbitmq/rabbitmq-server/tags
官方下载地址:https://dl.bintray.com/rabbitmq/all/rabbitmq-server/
选择版本3.7.14
下载rpm
安装包。
1 | 安装 |
1.4、启停RabbitMQ
1 | service rabbitmq-server start|stop |
2、RabbitMQ后台管理
2.1、安装后台管理插件
1 | rabbitmq-plugins enable rabbitmq_management |
2.2、放开访问端口
1 | RabbitMQ通讯端口 |
2.3、登录后台管理
浏览器访问页面http://ip:port/15672
可以打开后台管理页面。
默认自带的guest
用户只允许本地机器访问登录(提示User can only log in via localhost
),可以通过以下步骤解决:
cd /etc/rabbitmq
vi rabbitmq.config
- 写入
[{rabbit, [{loopback_users, []}]}].
,保存退出。 - 重启RabbitMQ,
service rabbitmq-server restart
- 用账号
guest
、密码guest
登录。
或者创建新的管理员用户登录
- 创建用户:
rabbitmqctl add_user 用户名 密码
- 赋予角色:
rabbitmqctl set_user_tags 用户名 administrator
- 用新创建的账号密码登录。
登录后页面会显示版本信息,我们可以查看消息队列的状态,也可以管理交换机、队列、用户等数据。
2.4、解决后台管理页面打开特别慢
本人在刚好安装好以后,发现打开和登录管理页面特别慢,连接RabbitMQ
有时候也会超时,后经排查发现是解析主机名的问题,在hosts
文件中配上当前主机名即可解决。
vi /etc/hosts
- 在
127.0.0.1
后追加当前主机名称。
1 | 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 libai |
3、RabbitMQ命令总结
3.1、启停RabbitMQ
1 | 开启 |
3.2、安装卸载后台管理插件
1 | 安装 |
3.3、RabbitMQ设置开机启动
1 | 开机启动 |
3.4、用户管理
1 | 创建用户 |
3.5、角色管理
1 | 角色名 administrator|monitoring|policymaker|management |
按照个人理解,用户角色可分为五类,超级管理员, 监控者, 策略制定者, 普通管理者以及其他。
超级管理员(administrator)
可登陆管理控制台(启用management plugin的情况下),可查看所有的信息,并且可以对用户,策略(policy)进行操作。监控者(monitoring)
可登陆管理控制台(启用management plugin的情况下),同时可以查看rabbitmq节点的相关信息(进程数,内存使用情况,磁盘使用情况等)策略制定者(policymaker)
可登陆管理控制台(启用management plugin的情况下), 同时可以对policy进行管理。但无法查看节点的相关信息(上图红框标识的部分)。
与administrator的对比,administrator能看到这些内容普通管理者(management)
仅可登陆管理控制台(启用management plugin的情况下),无法看到节点信息,也无法对策略进行管理。其他
无法登陆管理控制台,通常就是普通的生产者和消费者。