RabbitMQ学习2.1:window下RabbitMQ安装及实践

环境:

RabbitMQ:3.7.6;Erlang:otp_win64_20.3

摘要说明:

本篇文章主要讲述如何在window系统中安装RabbitMQ的相关基础应用、用户管理及权限管理;

步骤:

1.RabbitMQ安装

a.安装Erlang

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

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

选择对应版本下载安装再配置环境变量:

ERLANG_HOME:C:\Program Files\erl9.3
Path:%ERLANG_HOME%\bin

b.安装RabbitMQ

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

选择对应版本下载安装再配置环境变量

RABBITMQ_SERVER:C:\Program Files\RabbitMQ Server\rabbitmq_server-3.7.6
Path:%RABBITMQ_SERVER%\sbin

c.版本配对

RabbitMQ版本支持的Erlang版本是有限制的,若不配对则会报错:

Could not start application logger: Logger.App.start(:normal, []) returned an error: shutdown: failed to start child: Logger.ErrorHandler
    ** (EXIT) no process: the process is not alive or there's no process currently associated with the given name, possibly because its application isn't started

RabbitMQ版本支持的的Erlang版本可参考官网:http://www.rabbitmq.com/which-erlang.html

2.RabbitMQ基础使用

a.服务器启动

使用管理员角色打开:开始-运行-cmd;

net stop RabbitMQ && net start RabbitMQ

也可拆开使用即停止服务和启动服务;


b.开启管理软件

开始-运行-cmd下打开%RABBITMQ_SERVER%\sbin,在此目录下输入命令:

rabbitmq-plugins.bat enable rabbitmq_management

开启成功后,浏览器中输入http://localhost:15672/进入管理页面;

c.用户管理

开始-运行-cmd下打开%RABBITMQ_SERVER%\sbin,在此目录下输入命令:

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

rabbitmqctl.bat list_users
新增用户
rabbitmqctl.bat add_user xxx(用户名) xxx(密码)

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

rabbitmqctl.bat set_user_tags xxx(用户名) xxx(用户角色)
rabbitmqctl.bat 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.bat change_password xxx(用户名) xxx(用户角色)

删除用户

rabbitmqctl.bat delete_user xxx(用户名)

注:上述的rabbitmqctl.bat可变成rabbitmqctl

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


上述操作若报下列错误:

Error: unable to perform an operation on node 'rabbit@xxxx'. Please see diagnostics information and suggestions below.

这个错误是要求.erlang.cookie在系统中一致,将c:User\下的erlang.cookie复制到C:\Windows\System32\config\systemprofile使其一致

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

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

猜你喜欢

转载自blog.csdn.net/u010904188/article/details/80987568
今日推荐