Centos7 RabbitMQ的安装/配置

2019-12-04  本文已影响0人  末世狂人

因为RabbitMQ是由erlang实现的,所以要先安装erlang再安装rabbitMQ

安装前检查是否已经安装过EPEL

命令:yum repolist

如果已经安装,就不需执行下面的安装命令了

#下载EPEL地址:
wget  [https://mirrors.tuna.tsinghua.edu.cn/epel/7/x86_64/Packages/e/epel-release-7-11.noarch.rpm](https://mirrors.tuna.tsinghua.edu.cn/epel/7/x86_64/Packages/e/epel-release-7-11.noarch.rpm)
#安装命令1:
rpm -ivh epel-release-7-11.noarch.rpm
#安装命令2:
rpm -ivh [https://mirrors.tuna.tsinghua.edu.cn/epel/7/x86_64/Packages/e/epel-release-7-11.noarch.rpm](https://mirrors.tuna.tsinghua.edu.cn/epel/7/x86_64/Packages/e/epel-release-7-11.noarch.rpm)
#卸载命令:
rpm -e epel-release

安装 erlang

如果直接通过yum install erlang 安装erlang,但是安装的版本很低,当安装rabbitmq的时候会提示需要erlang版本>=19.3,这TM就尴尬了,所以直接图简单安装erlang的办法是不可行的 。

正确的安装姿势

1.查看已安装erlang信息
erl -version

如果有,会显示相应的版本
如果已安装版本过低,则先卸载 (如果没有已安装的,跳过此步)
查看安装文件

yum list installed | grep erlang
#删除文件
yum remove erlang-*.x86_64
2.安装rabbitmq官方推荐的”Zero-dependency Erlang from RabbitMQ”版本

注意:这里最好仔细的查看官方文档
修改/新增yum的erlang源

vim /etc/yum.repos.d/rabbitmq-erlang.repo
[rabbitmq-erlang]
name=rabbitmq-erlang
#注意检查官方最新的版本
baseurl=http://dl.bintray.com/rabbitmq/rpm/erlang/20/el/6
gpgcheck=1
gpgkey=http://dl.bintray.com/rabbitmq/Keys/rabbitmq-release-signing-key.asc
repo_gpgcheck=0
enabled=1

重点:不要忘了这两步

#清除
yum clean all 
#生成缓存
yum makecache
#安装
yum install erlang

安装 rabbitmq

查询对应的rabbitmq和erlang版本对应表,然后安装相应的rabbitmq版本
RabbitMQ

1.下载对应的安装包
#版本号后面的el7对应的是centos7的版本
wget https://dl.bintray.com/rabbitmq/all/rabbitmq-server/3.7.7/rabbitmq-server-3.7.7-4.el7.noarch.rpm
2.安装
yum install rabbitmq-server-3.7.7-4.el7.noarch.rpm

安装完成后,就完工了

操作

#查看服务
service rabbitmq-server status
#启动服务
service rabbitmq-server start
#停止服务
service rabbitmq-server stop
#重启
service rabbitmq-server restart
#查看当前用户列表
rabbitmqctl list_users
#创建用户
rabbitmqctl add_user UserName password
#权限赋值
rabbitmqctl set_user_tags UserName  administrator
#启用WEB管理界面
rabbitmq-plugins enable rabbitmq_management
#删除一个用户
rabbitmqctl delete_user guest
#修改用户的密码
rabbitmqctl change_password admin admin@test

#加入开机自启
systemctl enable rabbitmq-server.service或chkconfig rabbitmq-server on

# 查看所有队列消息
rabbitmqctl list_queues
#清除所有队列
rabbitmqctl reset

然后就能够访问http://ip:15672进入web管理页面了(外部访问别忘记修改防火墙)

what is virtual_host

vhost是rabbitmq分配权限的最小细粒度。比如我们可以为一个用户分配一个可以访问哪个或者哪一些vhost的权限。
但是不能为用户分配一个可以访问哪一些exchange,或者queue的权限,因为rabbitmq的权限细粒度没有细化到交换器和队列,他的最小细粒度是vhost(vhost中包含许多的exchanges,queues,bingdings)。
所以如果exchangeA 和queueA 只能让用户A访问,exchangeB 和queueB 只能让用户B访问,要达到这种需求,只能为exchangeA 和queueA创建一个vhostA,为exchangeB 和queueB 创建vhostB,这样就隔离开来了。

virtual host只是起到一个命名空间的作用,所以可以多个user共同使用一个virtual host,文章开头写的vritual_host = '/',这个是系统默认的,就是说当我们创建一个到rabbitmq的connection时候,它的命名空间是'/',需要注意的是不同的命名空间之间的资源是不能访问的,比如 exchang,queue ,bingding等

#查询虚拟机列表
rabbitmqctl list_vhosts
#添加虚拟机
rabbitmqctl add_vhost vhost_one
#删除虚拟机
rabbitmqctl delete_vhost vhost_one
#为用户设置虚拟机的访问权限
rabbitmqctl set_permissions -p vhostname username ".*" ".*" ".*"
#后边三个.*分别代表:配置权限、写权限、读权限
上一篇 下一篇

猜你喜欢

热点阅读