在 CentOS7 上安装 RabbitMQ 消息队列中间件

RabbitMQ 是流行的开源消息队列系统,是 AMQP(Advanced Message Queuing Protocol 高级消息队列协议)的标准实现,用 erlang 语言开发。RabbitMQ 具有良好的性能和时效性,同时还能够非常好的支持集群和负载部署,非常适合在较大规模的分布式系统中使用。

一、安装 erlang

// 下载
rpm -Uvh ... (地址已不可访问)
// 安装
yum -y localinstall erlang-19.0.4-1.el7.centos.x86_64.rpm

安装完成后再安装 RabbitMQ。

 

二、安装 RabbitMQ

1. 下载 rpm:

wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.6/rabbitmq-server-3.6.6-1.el7.noarch.rpm

2. 安装:

yum -y localinstall rabbitmq-server-3.6.6-1.el7.noarch.rpm

3. 启动

systemctl start rabbitmq-server.service

4. 查看状态

systemctl status rabbitmq-server.service

如下则表示安装成功:

在 CentOS7 上安装 RabbitMQ 消息队列中间件

5. 添加配置文件

上图我们看到日志文件在:Logs: /var/log/rabbitmq/rabbit@....log

打开日志可以看到如下内容:

在 CentOS7 上安装 RabbitMQ 消息队列中间件

这里提示没有找到配置文件,我们可以手动在这个目录下添加一个:

// 跳转目录
cd /etc/rabbitmq
// 创建文件
vim rabbitmq.config

添加内容:

[{rabbit, [{loopback_users, []}]}].

重启:

systemctl restart rabbitmq-server.service

三、开启管理端

1. 启动插件

rabbitmq-plugins enable rabbitmq_management

 2. 修改防火墙

// 开放管理端端口
firewall-cmd --zone=public --add-port=15672/tcp --permanent
// 开放服务器端口
firewall-cmd --zone=public --add-port=5672/tcp --permanent
// 重启
firewall-cmd --reload

3. 访问管理页面

http://localhost:15672

RabbltMQ 默认的账号 guest,密码 guest。

该账号只允许在本地访问。

4. 配置远程访问

// 添加用户
rabbitmqctl add_user admin admin123
// 添加权限
rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"
// 赋予超级管理员角色
rabbitmqctl set_user_tags admin administrator

安装到这里就结束了,以下是对 RabbitMQ 使用的一些知识扩展。

四、重置 RabbitMQ 配置

1. 关闭 RabbitMQ

rabbitmqctl stop_app

2. 重置

rabbitmqctl reset

3. 启动 RabbitMQ

rabbitmqctl start_app

重置后,远程用户也会清除。需要重新配置远程用户。

五、其他命令

add_user <UserName> <Password>
delete_user <UserName>
change_password <UserName> <NewPassword>
list_users
add_vhost <VHostPath>
delete_vhost <VHostPath>
list_vhostsset_permissions [-p <VHostPath>] <UserName> <Regexp> <Regexp> <Regexp>
clear_permissions [-p <VHostPath>] <UserName>
list_permissions [-p <VHostPath>]
list_user_permissions <UserName>
list_queues [-p <VHostPath>] [<QueueInfoItem> ...]
list_exchanges [-p <VHostPath>] [<ExchangeInfoItem> ...]
list_bindings [-p <VHostPath>]
list_connections [<ConnectionInfoItem> ...]