个人博客


  • Linux版本:CentOS 7
  • RabbitMQ版本:3.7.14
  • Erlang版本:20.3.4
  • socat版本:1.7.3.2

说明:

  • 由于RabbitMQ是基于Erlang语言开发,所以在安装RabbitMQ之前, 需要先安装ErlangRabbitMQErlang版本需要对应,可以参考官网给出的列表:https://www.rabbitmq.com/which-erlang.html
  • RabbitMQ需要socat依赖,所以需要安装socat

1、安装包下载安装

1.1、下载安装socat

1
2
3
4
# 下载
wget http://repo.iotti.biz/CentOS/7/x86_64/socat-1.7.3.2-5.el7.lux.x86_64.rpm
# 安装
rpm -ivh socat-1.7.3.2-5.el7.lux.x86_64.rpm

1.2、下载安装Erlang

github下载地址:https://github.com/rabbitmq/erlang-rpm/tags
选择版本20.3.4下载rpm安装包。

1
2
# 安装
rpm -ivh erlang-20.3.4-1.el7.centos.x86_64.rpm

1.3、下载安装RabbitMQ

github下载地址:https://github.com/rabbitmq/rabbitmq-server/tags
官方下载地址:https://dl.bintray.com/rabbitmq/all/rabbitmq-server/
选择版本3.7.14下载rpm安装包。

1
2
# 安装
rpm -ivh rabbitmq-server-3.7.14-1.el7.noarch.rpm

1.4、启停RabbitMQ

1
service rabbitmq-server start|stop

2、RabbitMQ后台管理

2.1、安装后台管理插件

1
rabbitmq-plugins enable rabbitmq_management

2.2、放开访问端口

1
2
3
4
5
6
# RabbitMQ通讯端口
firewall-cmd --zone=public --add-port=5672/tcp --permanent
# RabbitMQ后台管理页面端口
firewall-cmd --zone=public --add-port=15672/tcp --permanent
# 重启防火墙
firewall-cmd --reload

2.3、登录后台管理

浏览器访问页面http://ip:port/15672可以打开后台管理页面。
-w661

默认自带的guest用户只允许本地机器访问登录(提示User can only log in via localhost),可以通过以下步骤解决

  1. cd /etc/rabbitmq
  2. vi rabbitmq.config
  3. 写入[{rabbit, [{loopback_users, []}]}].,保存退出。
  4. 重启RabbitMQ,service rabbitmq-server restart
  5. 用账号guest、密码guest登录。

或者创建新的管理员用户登录

  1. 创建用户:rabbitmqctl add_user 用户名 密码
  2. 赋予角色:rabbitmqctl set_user_tags 用户名 administrator
  3. 用新创建的账号密码登录。

登录后页面会显示版本信息,我们可以查看消息队列的状态,也可以管理交换机、队列、用户等数据。

-w1629

2.4、解决后台管理页面打开特别慢

本人在刚好安装好以后,发现打开和登录管理页面特别慢,连接RabbitMQ有时候也会超时,后经排查发现是解析主机名的问题,在hosts文件中配上当前主机名即可解决。

  1. vi /etc/hosts
  2. 127.0.0.1 后追加当前主机名称。
1
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4 libai

3、RabbitMQ命令总结

3.1、启停RabbitMQ

1
2
3
4
5
6
# 开启
service rabbitmq-server start
# 关闭
service rabbitmq-server stop
# 查看状态
service rabbitmq-server status

3.2、安装卸载后台管理插件

1
2
3
4
# 安装
rabbitmq-plugins enable rabbitmq_management
# 卸载
rabbitmq-plugins disable rabbitmq_management

3.3、RabbitMQ设置开机启动

1
2
3
4
# 开机启动
systemctl enable rabbitmq-server
# 关闭开机启动
systemctl disable rabbitmq-server

3.4、用户管理

1
2
3
4
5
6
7
8
# 创建用户
rabbitmqctl add_user 用户名 密码
# 删除用户
rabbitmqctl delete_user 用户名
# 修改密码
rabbitmqctl change_password 用户名 密码
# 查看当前用户列表
rabbitmqctl list_users

3.5、角色管理

1
2
# 角色名 administrator|monitoring|policymaker|management
rabbitmqctl set_user_tags 用户名 角色名

按照个人理解,用户角色可分为五类,超级管理员, 监控者, 策略制定者, 普通管理者以及其他。

  1. 超级管理员(administrator)
    可登陆管理控制台(启用management plugin的情况下),可查看所有的信息,并且可以对用户,策略(policy)进行操作。

  2. 监控者(monitoring)
    可登陆管理控制台(启用management plugin的情况下),同时可以查看rabbitmq节点的相关信息(进程数,内存使用情况,磁盘使用情况等)

  3. 策略制定者(policymaker)
    可登陆管理控制台(启用management plugin的情况下), 同时可以对policy进行管理。但无法查看节点的相关信息(上图红框标识的部分)。
    与administrator的对比,administrator能看到这些内容

  4. 普通管理者(management)
    仅可登陆管理控制台(启用management plugin的情况下),无法看到节点信息,也无法对策略进行管理。

  5. 其他
    无法登陆管理控制台,通常就是普通的生产者和消费者。

参考链接