RabbitMQ学习2.2:CentOS下RabbitMQ安装及实践

环境:

CentOS 6/7;RabbitMQ:3.3.5;Erlang R16B03-1 (erts-5.10.4)

摘要说明:

本篇文章主要讲述如何在CentOS 6/7下安装RabbitMQ的相关基础应用、用户管理及权限管理;

步骤:

1.RabbitMQ安装

由于RabbitMQ用erlang语言开发,所以安装RabbitMQ必须先安装Erlang:

yum -y install erlang

查看erlang版本:

erl -v

安装RabbitMQ:

yum -y install rabbitmq-server

查看RabbitMQ的版本及安装情况:

rabbitmq-server -v

若发现版本过低,可删除服务,手动从官网下载进行安装:

yum -y remove erlang
yum -y remove rabbitmq-server

erlang官网地址:http://www.erlang.org/download.html

RabbitMQ官网地址:http://www.rabbitmq.com/download.html

版本匹配地址:http://www.rabbitmq.com/which-erlang.html

2.RabbitMQ基础使用

a.服务器启动

通用启动:

service rabbitmq-server start
service rabbitmq-server stop
service rabbitmq-server restart

ContOS 7也可使用:

systemctl start rabbitmq-server.service

查看启动状态:

service rabbitmq-server status

b.开启管理组件

开启管理组件:

rabbitmq-plugins enable rabbitmq_management

需重启rabbitmq服务;

浏览器打开http://ip:15672/访问,防火墙需关闭;

c.用户管理

liunx用户管理和window类似:

查看用户列表,默认有一个用户guest:

rabbitmqctl list_users

新增用户

rabbitmqctl add_user xxx(用户名) xxx(密码)

设置用户角色:一个或多个

rabbitmqctl set_user_tags xxx(用户名) xxx(用户角色)
rabbitmqctl set_user_tags xxx(用户名) xxx(用户角色1) xxx(用户角色2) ...

rabbitmq用户角色可分为五类:超级管理员, 监控者, 策略制定者, 普通管理者以及其他
1) 超级管理员(administrator)
可登陆管理控制台(启用management plugin的情况下),可查看所有的信息,并且可以对用户,策略(policy)进行操作。
2) 监控者(monitoring)
可登陆管理控制台(启用management plugin的情况下),同时可以查看rabbitmq节点的相关信息(进程数,内存使用情况,磁盘使用情况等) 
3) 策略制定者(policymaker)
可登陆管理控制台(启用management plugin的情况下), 同时可以对policy进行管理。
4) 普通管理者(management)
仅可登陆管理控制台(启用management plugin的情况下),无法看到节点信息,也无法对策略进行管理。
5) 其他的

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

修改用户密码

rabbitmqctl change_password xxx(用户名) xxx(用户角色)

删除用户

rabbitmqctl delete_user xxx(用户名)

实例操作结果如下

[root@izbp1comme3jumn4a33wq0z ~]# rabbitmqctl list_users
Listing users ...
guest	[administrator]
...done.
[root@izbp1comme3jumn4a33wq0z ~]# rabbitmqctl add_user cc 111111
Creating user "cc" ...
...done.
[root@izbp1comme3jumn4a33wq0z ~]# rabbitmqctl set_user_tags cc administrator
Setting tags for user "cc" to [administrator] ...
...done.
[root@izbp1comme3jumn4a33wq0z ~]# rabbitmqctl change_password cc 222222
Changing password for user "cc" ...
...done.
[root@izbp1comme3jumn4a33wq0z ~]# rabbitmqctl delete_user guest
Deleting user "guest" ...
...done.
[root@izbp1comme3jumn4a33wq0z ~]# rabbitmqctl list_users
Listing users ...
cc	[administrator]
...done.

可使用刚创建的用户登录管理软件控制台:

RabbitMQ学习2.2:CentOS下RabbitMQ安装及实践_第1张图片

d.权限管理

在上一章我们知道一个服务器实体(Broker)可以建立多个虚拟主机(vhost),这里面就需要对用户分配vhost的权限;

创建虚拟主机

rabbitmqctl add_vhost xxx(vhost)

删除虚拟机

rabbitmqctl delete_vhost xxx(vhost)

虚拟主机查询:

rabbitmqctl list_vhosts

权限授予

rabbitmqctl set_permissions -p /myvhost tonyg "^tonyg-.*" ".*" ".*"

例如,此命令指示RabbitMQ代理授予名为“tonyg”的用户访问名为“/myvhost”的虚拟主机,并对名称以“tonyg-”开头的所有资源具有配置权限,并对所有资源执行写入和读取权限资源:

set_permissions [-p vhost] user conf write read

vhost:要授予用户访问权限的虚拟主机的名称,默认为“/”。

user:用于授予对指定虚拟主机的访问权限的用户的名称。

conf:正则表达式匹配为其授予用户配置权限的资源名称。

write:正则表达式,匹配为其授予用户写入权限的资源名称。

read:正则表达式,匹配为其授予用户读取权限的资源名称。

设置用户权限。

清除授权

rabbitmqctl clear_permissions -p / myvhost tonyg

例如,此命令指示RabbitMQ代理拒绝名为“tonyg”的用户访问名为“/ myvhost”的虚拟主机:

查询主机授权

rabbitmqctl list_permissions -p /myvhost

查询用户授权

rabbitmqctl list_user_permissions tonyg

实际操作如下:

[root@izbp1comme3jumn4a33wq0z ~]# rabbitmqctl add_vhost /test
Creating vhost "/test" ...
...done.
[root@izbp1comme3jumn4a33wq0z ~]# rabbitmqctl list_vhosts
Listing vhosts ...
/
/test
...done.
[root@izbp1comme3jumn4a33wq0z ~]# rabbitmqctl set_permissions -p /test cc "^cc-.*" ".*" ".*"
Setting permissions for user "cc" in vhost "/test" ...
...done.
[root@izbp1comme3jumn4a33wq0z ~]# rabbitmqctl list_permissions -p /test
Listing permissions in vhost "/test" ...
cc	^cc-.*	.*	.*
...done.
[root@izbp1comme3jumn4a33wq0z ~]# rabbitmqctl list_user_permissions cc
Listing permissions for user "cc" ...
/test	^cc-.*	.*	.*
...done.

更多请参考官网:http://www.rabbitmq.com/rabbitmqctl.8.html#set_permissions

你可能感兴趣的:(RabbitMQ学习,服务搭建及应用)