阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

RabbitMQ在CentOS 7中安装配置教程

147次阅读
没有评论

共计 3360 个字符,预计需要花费 9 分钟才能阅读完成。

消息队列现在在互联网项目中应用的还是非常多的,在接下来的文中小编会深入的了解 RabbitMQ 的实现过程,在此文中将介绍如何在 CentOS 7 下面安装 RabbitMQ 以及遇到的问题。

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

系统版本:

RabbitMQ 在 CentOS 7 中安装配置教程

安装依赖:

由于 RabbitMQ 是基于 Erlang 语言开发,所以在安装 RabbitMQ 之前,需要先安装 Erlang。

Erlang 的安装方式大概有两种:

(1) Erlang Solution 安装 ( 推荐)

wget https://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm

rpm -Uvh erlang-solutions-1.0-1.noarch.rpm

yum install erlang

(2) 从 EPEL 源安装(这种方式安装的 Erlang 版本可能不是最新的,有时候不能满足 RabbitMQ 需要的最低版本)

yum install epel-release

yum install erlang

安装 RabbitMQ:

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

RabbitMQ 在 CentOS 7 中安装配置教程

下载完成后安装:

yum install rabbitmq-server-3.6.15-1.el7.noarch.rpm

安装时如果遇到下面的依赖错误:

Error: Package: socat-1.7.2.3-1.el6.x86_64 (epel) Requires: libreadline.so.5()(64bit)

可以尝试先执行:

yum install socat

RabbitMQ 的一些基本操作:

# 添加开机启动 RabbitMQ 服务

systemctl enable rabbitmq-server.service

# 查看服务状态

systemctl status  rabbitmq-server.service

# 启动服务

systemctl start rabbitmq-server.service

# 停止服务

systemctl stop rabbitmq-server.service

# 查看当前所有用户

rabbitmqctl list_users

# 查看默认 guest 用户的权限

rabbitmqctl list_user_permissions guest

# 由于 RabbitMQ 默认的账号用户名和密码都是 guest。为了安全起见, 先删掉默认用户

rabbitmqctl delete_user guest

# 添加新用户

rabbitmqctl add_user username password

# 设置用户 tag

rabbitmqctl set_user_tags username administrator

# 赋予用户默认 vhost 的全部操作权限

rabbitmqctl set_permissions -p / username “.*” “.*” “.*”

# 查看用户的权限

rabbitmqctl list_user_permissions username

更多关于 rabbitmqctl 的使用,可以参考帮助手册。

开启 web 管理接口

如果只从命令行操作 RabbitMQ,多少有点不方便。幸好 RabbitMQ 自带了 web 管理界面,只需要启动插件便可以使用。

rabbitmq-plugins enable rabbitmq_management

访问:  http://localhost:15672

配置 RabbitMQ

关于 RabbitMQ 的配置,可以下载 RabbitMQ 的配置文件模板到 /etc/rabbitmq/rabbitmq.config, 然后按照需求更改即可。
关于每个配置项的具体作用,可以参考官方文档。

开启用户远程访问

默认情况下,RabbitMQ 的默认的 guest 用户只允许本机访问,如果想让 guest 用户能够远程访问的话,只需要将配置文件中的 loopback_users 列表置为空即可,如下:

{loopback_users, []}

另外关于新添加的用户,直接就可以从远程访问的,如果想让新添加的用户只能本地访问,可以将用户名添加到上面的列表, 如只允许 admin 用户本机访问。

{loopback_users, [“admin”]}

restart …

查看日志位置

systemctl status  rabbitmq-server.service

RabbitMQ 在 CentOS 7 中安装配置教程

这里可以看到 log 文件的位置,转到文件位置,打开文件:

RabbitMQ 在 CentOS 7 中安装配置教程

这里显示的是没有找到配置文件,我们可以自己创建这个文件:

cd /etc/rabbitmq/

vim rabbitmq.config

编辑内容如下:

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

这里的意思是开放使用,rabbitmq 默认创建的用户 guest,密码也是 guest,这个用户默认只能是本机访问,localhost 或者 127.0.0.1,从外部访问需要添加上面的配置。

保存配置后重启服务:

systemctl stop rabbitmq-server.service

systemctl start rabbitmq-server.service

此时就可以从外部访问了,但此时再看 log 文件,发现内容还是原来的,还是显示没有找到配置文件,可以手动删除这个文件再重启服务,不过这不影响使用:

rm rabbit\@mythsky.log

service rabbitmq-server stop

service rabbitmq-server start

注意: 记得要开放 5672 和 15672 端口 (iptables 版本)

/iptables -I INPUT -p tcp –dport 5672 -j ACCEPT

/iptables -I INPUT -p tcp –dport 15672 -j ACCEPT 

 

WEB UI:

RabbitMQ 在 CentOS 7 中安装配置教程

设置权限

rabbitmqctl add_vhost admin

rabbitmqctl set_permissions -p admin  admin “.*” “.*” “.*”

注释:主要是 set_permissions 的使用,先看下命令的格式:

set_permissions [-p vhost] {user} {conf} {write} {read}

需要注意以下几点的理解:

1. 这里的权限,只是针对一般用户的访问权限,注意和角色的区分。举个例子来说,非管理用户(普通用户),角色设置为 none,然后在这里配置 conf、write、read 的权限。

2.conf、write、read 采用正则表达式,这里的正则主要是针对 exchange 和 queue。主要 2 种特殊的表达式:

^$:表示完全不匹配(即没有权限)

.*:表示匹配所有(即所有权限)

常用命令

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> …]

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计3360字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中