RabbitMQ(4)-管理篇
RabbitMQ(4)-管理篇
你我他有个梦 发表于2年前
RabbitMQ(4)-管理篇
  • 发表于 2年前
  • 阅读 357
  • 收藏 2
  • 点赞 0
  • 评论 0

新睿云服务器60天免费使用,快来体验!>>>   

摘要: 针对RabbitMQ用户管理以及用户角色的管理,检查服务器以及属性讲解

一.用户管理

针对用户管理,第一种很方面的就是通过web管理界面进行增删改用户以及权限 的管理,第二种就是命令行方式

下面是windows方式,如果使用linux方式,只需将相关bat命令替换为sh即可

rabbitmqctl是管理rabbitmq的命令

1.增加用户

rabbitmqctl.bat add_user rabbitmq rq1

增加一个rabbitmq用户,密码为rq1

2.更改用户角色

rabbitmqctl.bat set_user_tags rabbitmq administrator

 设置其为超级管理员

3.更改用户权限

rabbitmqctl.bat set_permissions -p / rabbitmq ".*" ".*" ".*"

后面三个分别代表配置权限、写权限、读权限

4.其他命令

删除用户:rabbitmqctl  delete_user  Username

修改用户密码:rabbitmqctl  change_password  username  newpassword

二.用户角色

用户角色可分为五类

Administrator | Monitoring | Policymaker | Management | None

1.超级管理员(Administrator)

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

2.监控者(Monitoring)

可查看rabbitmq节点的相关信息(进程数,内存使用、磁盘使用等),但是不可管理用户

3.策略制定者(Policymaker)

可登陆管理控制台(启用management plugin的情况下), 同时可以对policy进行管理。但无法查看节点的相关信息

4.普通管理者

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

5.其他

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

三.服务器管理

1.关闭和重启应用程序的区别

rabbitmqctl stop,会将RabbitMQ应用程序和erlang节点同时关闭,如果在同一个节点运行RabbitMQ和其他erlang应用程序,而只想停止RabbitMQ,则使用rabbitmqctl stop_app

2.检查服务器

列出队列与消息数目

rabbitmqctl list_queues

更多队列消息:

rabbitmqctl list_queues name messages consumers memory

队列属性

rabbitmqctl list_queues name durable auto_delete

查看交换器

rabbitmqctl list_exchanges

交换器属性

rabbitmqctl list_exchanges name type durable auto_delete

绑定信息

rabbitmqctl  list_bindings

web端管理RabbitMQ

1.在overview视图下方你可以下载配置信息,格式为json,还可以针对json配置文件作修改上传,刷新页面即可看到更改的配置

2.另一种是CLI管理方式

HTTP API: 访问  http://主机名/IP:15672/api/     这里讲解很清楚

另一种是Command Line方式:

centos6.5下自带python2.6,如需升级可查看http://www.cnblogs.com/dudu/p/4294238.html

假设已经安装python,通过一下命令即可安装rabbitmqadmin管理脚本,默认是安装到你的当前目录,为了方便管理将他移到rabbitmq相关命令的目录

wget http://主机名/IP:15672/cli/

mv /rabbitmqadmin /usr/rabbitmq/sbin

chmod +x rabbitmqadmin

下面即可使用rabbitmqadmin,输出的内容是格式化之后的



五.属性讲解

1.QUEUE

一旦创建了队列和交换机就不能修改,如要修改需重新创建

持久化(Durability )与exchange是相同的,未持久化的队列会在服务器重启的时候销毁;

自动删除(Auto delete):当没有消费者连接该队列时自动销毁;

私有性(Exclusive ):使队列称为私有队列,只有当前应用程序可用,只有一个消费者;

Message TTL:当一个消息推送至该队列时存在的时间,单位ms

Auto expire: 在队列自动删除之前可以保留多长时间;

Max length :一个队列可以容纳的已准备消息的数量;

2.Message

2.1    Ready

此状态的消息存在于队列中待处理。

2.2    Unacknowledged

此状态的消息表示已经在处理未确认

2.3    Ack

Consumer接收到消息、处理任务完成之后,会发送带有这个消息标示符的ack,来告诉server这个消息接收到并处理完成。RabbitMQ会一直等到处理某个消息的Consumer的链接失去之后,才确定这个消息没有正确处理,从而RabbitMQ重发这个消息。

3.Binding

声明一个队列时,服务会将其绑定到默认的exchange上,而默认的exchange名称是空。而对于持久化的队列和持久化的交换机,如果删除其中一个,与其绑定的也会删除

4.发布订阅

发布者把消息发送给exchangeexchange根据其类型,决定将消息处理到哪个队列,例如通过广播的方式去处理消息,所有的队列都会收到相应的消息

5.WorkQueue

可用于消费者集群,如果一个队列积压太多的消息,如何让消费者均匀的去承担,是它所做的事情。

例如,可以通过控制一个队列单次消费的数量

void BasicQos(uint prefetchSize, ushort prefetchCount, bool global)

假如是一个生产者,3个消费者,发送九条消息,会通过轮询的方式去发送,每个消费者均收到三条消息,并且是按顺序去发送


  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
你我他有个梦
粉丝 90
博文 110
码字总数 98858
×
你我他有个梦
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: