zoukankan      html  css  js  c++  java
  • windows下 安装 rabbitMQ 及操作常用命令

     

    rabbitMQ是一个在AMQP协议标准基础上完整的,可服用的企业消息系统。它遵循Mozilla Public License开源协议,采用 Erlang 实现的工业级的消息队列(MQ)服务器,Rabbit MQ 是建立在Erlang OTP平台上。

    1.安装Erlang 

    所以在安装rabbitMQ之前,需要先安装Erlang 。

    小编使用的是otp_win64_18.1 ,需要其他版本或者32位系统的,可以去官网下载。

    全部点击“下一步”就行。

    有的选择其他的安装方式,可能需要添加一下系统环境变量(正常安装的也要检查下):

    有最好,没有的话就手动添加嘛。

    2.安装RabbitMQ

    下载运行rabbitmq-server-3.6.5 ,需要其他版本或者32位系统的,可以去官网下载。

    依旧可以不改变默认进行安装。

    需要注意:默认安装的RabbitMQ 监听端口是5672

    3.配置

    激活 RabbitMQ's Management Plugin

    使用RabbitMQ 管理插件,可以更好的可视化方式查看Rabbit MQ 服务器实例的状态。

    打开命令窗口:

    输入命令:

    "C:Program FilesRabbitMQ Server
    abbitmq_server-3.6.5sbin
    abbitmq-plugins.bat" enable rabbitmq_management

    这样,就安装好插件了,是不是能使用了呢?别急,需要重启服务才行,使用命令:

    net stop RabbitMQ && net start RabbitMQ

    这时候的,也许会出现这种结果:

    “发生错误:发生系统错误 5。  拒绝访问。”

    这是什么鬼?查了下,原来,5代表的是:不是系统管理员权限。

    问题解决方案:使用管理员打开cmd再执行此命令:

    这样就结束了吗?当然没有。

    创建用户,密码,绑定角色

    使用rabbitmqctl控制台命令(位于C:Program FilesRabbitMQ Server abbitmq_server-3.6.5sbin>)来创建用户,密码,绑定权限等。

    注意:安装路径不同的请看仔细啊。

    rabbitmq的用户管理包括增加用户,删除用户,查看用户列表,修改用户密码。

    查看已有用户及用户的角色:

    rabbitmqctl.bat list_users

    若是报错Error: unable to connect to node rabbit@xxx: nodedown

    erlang的cookie问题排解

    Google、百度了一通后,大多数都说的是cookie的问题,需要保持C:Windows下的.erlang.cookie和C:UsersAdministrator下的.erlang.cookie一致,然后我搜索了一下,总共在三个地方找到了这个文件,如下图:

    然后,我用其中的一个文件中的内容完全替换掉其他两个,这样使三个文件保持一致,然后打开下面这个窗口:

    新的错误: unable to perform an operation on node

    再次执行rabbitmqctl status命令,此时报了另一个错误:

    不解,cookie也设置相同了,环境变量也添加正确了,为什么还是报错,继续寻找问题。

    登录账号权限问题

    后来看到一个网友说可能是登录账号的问题,我是用administrator账号登录服务器并安装rabbitmq的,rabbitmq也自动在C:useradministrator下创建了一个.erlang.cookie文件,但是RabbitMQ服务启动的时候,执行者是local system account,如下图所示:

    此时,我想到将RabbitMQ服务的启动账号改成administrator,果然,更改后重启服务,再次执行rabbitmqctl status,成功!具体操作如下图所示:

    接下来呢,就是在浏览器中查看并设置新的管理员账号,来管理消息队列,具体的操作如下图,同时也可以参考我的另一篇博客中的详细操作。

    为新账户设置管理员权限

    这里需要说一下的是,在给新创建的账号指定管理员权限时,按照之前的命令:rabbitmqctl.bat set_permissions -p / cmmooc_zhaopin ".*" ".*" ".*",执行后,并没有为其赋予administrator的权限,如下图所示:

    这里,需要执行这个命令:rabbitmqctl set_user_tags cmmooc_zhaopin administrator,此时才真正设置成管理员权限:

    最后,就可以使用新创建的账号来登录rabbitmq网页管理界面了

     

    原文来自博主自己的博客:https://www.dupengnet.com/detail/5a5cc344dbad9e0c9c17eef4

    好,报错问题已解决,我们继续下去

    新增一个用户:

    rabbitmqctl.bat add_user username password

    此时来看下我们当前用户哈:

    eric 后面没有“[administrator]”

    这个administrator是干嘛用的呢?这就涉及到用户角色问题了:

    按照我个人理解,rabbitmq用户角色可分为五类:超级管理员, 监控者, 策略制定者, 普通管理者以及其他。

    (1) 超级管理员(administrator)

    可登陆管理控制台(启用management plugin的情况下),可查看所有的信息,并且可以对用户,策略(policy)进行操作。

    (2) 监控者(monitoring)

    可登陆管理控制台(启用management plugin的情况下),同时可以查看rabbitmq节点的相关信息(进程数,内存使用情况,磁盘使用情况等) 

    (3) 策略制定者(policymaker)

    可登陆管理控制台(启用management plugin的情况下), 同时可以对policy进行管理。

    (4) 普通管理者(management)

    仅可登陆管理控制台(启用management plugin的情况下),无法看到节点信息,也无法对策略进行管理。

    (5) 其他的

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

    好啦,我们也给 eric 变成 “超级管理员” 角色:

    rabbitmqctl.bat set_user_tags username administrator

    再看下结果哈:

    当然,除了上面的administrator 还有 monitoring、policymaker、management、自定义名称 ,对应上面介绍到的不同的角色。

    像我们人一样,我们角色除了是公司的员工,还是父母的孩子、子女的爸妈等,用户也可以同时具有多个角色,设置方式:

    rabbitmqctl.bat  set_user_tags  username tag1 tag2 ...

    恩,现在总觉得guest 这个不安全(它的默认密码是guest),想更改密码,好办:

    rabbitmqctl change_password userName newPassword

    有的人也许会说,我就是看guest不爽,老子新增了administrator用户了,就是想干掉它,可以:

    rabbitmqctl.bat delete_user username

     这时,可能有人就要问了:命令框是只有一个用户了,你怎么操作啊?怎么查看执行情况啊/

     当然有路子啦:

    使用浏览器打开 http://localhost:15672 访问Rabbit Mq的管理控制台,使用刚才创建的账号登陆系统:

     

    其实,除了可查看所有的信息 ,上面的命令 增删改查、权限设置,都可以在这个页面完成,还可以依据业务需求设置策略(policy),具体的就不在这里啰嗦了,大家可以看看网上的帖子。

    权限设置

    用户有了角色,那也需要权限设置啊,别急,慢慢来:

    按照官方文档,用户权限指的是用户对exchange,queue的操作权限,包括配置权限,读写权限。

    我们配置权限会影响到exchange、queue的声明和删除。

    读写权限影响到从queue里取消息、向exchange发送消息以及queue和exchange的绑定(binding)操作。

    例如: 将queue绑定到某exchange上,需要具有queue的可写权限,以及exchange的可读权限;向exchange发送消息需要具有exchange的可写权限;从queue里取数据需要具有queue的可读权限

    权限相关命令为:

    (1) 设置用户权限

    rabbitmqctl  set_permissions  -p  VHostPath  User  ConfP  WriteP  ReadP

    (2) 查看(指定hostpath)所有用户的权限信息

    rabbitmqctl  list_permissions  [-p  VHostPath]

    (3) 查看指定用户的权限信息

    rabbitmqctl  list_user_permissions  User

    (4)  清除用户的权限信息

    rabbitmqctl  clear_permissions  [-p VHostPath]  User

    现在环境搭好了,用户、角色、权限全部设置好,开始进行code(原理整理,及编码 待续)

    参考:

    安装参考 http://www.rabbitmq.com/install-windows-manual.html

    权限内容参考 http://www.rabbitmq.com/man/rabbitmqctl.1.man.html

    权限命令摘自 https://my.oschina.net/hncscwc/blog/262246

    作者:Eric Li 
    出处:http://www.cnblogs.com/ericli-ericli/ 
    除转载文章外,随笔版权归作者和博客园所有,欢迎转载,转载请标明出处。 
    如果您觉得本篇博文对您有所收获,觉得作者还算用心,请点击右下角的 [推荐],谢谢!

  • 相关阅读:
    codeforces 616B Dinner with Emma
    codeforces 616A Comparing Two Long Integers
    codeforces 615C Running Track
    codeforces 612C Replace To Make Regular Bracket Sequence
    codeforces 612B HDD is Outdated Technology
    重写父类中的成员属性
    子类继承父类
    访问修饰符
    方法的参数
    实例化类
  • 原文地址:https://www.cnblogs.com/dqcer/p/9358811.html
Copyright © 2011-2022 走看看