文档章节

RabbitMQ(4)-管理篇

你我他有个梦
 你我他有个梦
发布于 2015/12/20 14:10
字数 1291
阅读 437
收藏 2

一.用户管理

针对用户管理,第一种很方面的就是通过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个消费者,发送九条消息,会通过轮询的方式去发送,每个消费者均收到三条消息,并且是按顺序去发送


© 著作权归作者所有

共有 人打赏支持
你我他有个梦

你我他有个梦

粉丝 95
博文 110
码字总数 98858
作品 0
昌平
程序员
私信 提问
RabbitMQ管理插件的安装

先安装rabbitmq-server这里就不写了,之前有篇文章里有相关步骤:RabbitMQ的安装与配置 如果/etc/rabbitmq不存在会报如下错误: Error: {cannotwriteenabledpluginsfile,”/etc/rabbitmq/ena...

openthings
2015/05/21
0
0
Docker下RabbitMQ三部曲之一:极速体验(单机和集群)

从本章开始,我们一起在Docker环境实战RabbitMQ环境部署和对应的Java开发,当前是《Docker下RabbitMQ三部曲》系列的第一篇,整个三部曲由以下三篇文章组成: 1. 第一篇,即本章,我们用最快的...

boling_cavalry
05/12
0
0
rabbitmq-server 安装

一,安装rabbitmq-server 1.安装erlang wget https://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm rpm -Uvh erlang-solutions-1.0-1.noarch.rpm rpm --import https:/......

丿小贰丶
05/08
0
0
RabbitMQ 内存控制 硬盘控制

一、内存控制: vmmemoryhigh_watermark 该值为内存阈值,默认为0.4。意思为物理内存的40%。40%的内存并不是内存的最大的限制,它是一个发布的节制,当达到40%时Erlang会做GC。最坏的情况是使...

andrewniu
05/10
0
0
Docker安装部署RabbitMQ、PHP安装扩展AMQP及测试

一、使用Docker安装部署RabbitMQ 1、docker search rabbitmq:management 2、docker pull rabbitmq:management 注:如果docker pull rabbitmq 后面不带management,启动rabbitmq后是无法打开管......

老查
11/06
0
0

没有更多内容

加载失败,请刷新页面

加载更多

即学即用,轻松搞定这些选择器!(上)

所谓基本选择器是指选择器的名称前面没有其他选择器,即在组成上,基本选择器是单一名称。 基本选择器主要包括: 元素选择器 ID 选择器 类选择器 伪类选择器 伪元素选择器 通用选择器 元素选...

我的卡
7分钟前
1
0
c直接操作JAVA中的数组

** * jni对数组运算 * 在C中没有创建新的数组副本,直接在原来的java数组上面修改。然后返回了jintArray类型数据 */ JNIEXPORT jintArray JNICALL Java_com_org_vincent_javacallc_JNI_incr...

whoisliang
15分钟前
1
0
简单理解闭包问题

从我16年开始接触前端,知道闭包这个词,已经过去两年了。这两年里,闭包这个概念我在很多地方了解过,却实在没有真的理解,久而久之,变成了一块心病。这不,趁着现在项目告一段落的时间,我...

IrisHuang
16分钟前
2
0
网站漏洞怎么修复对于thinkphp的漏洞修复

THINKPHP漏洞修复,官方于近日,对现有的thinkphp5.0到5.1所有版本进行了升级,以及补丁更新,这次更新主要是进行了一些漏洞修复,最严重的就是之前存在的SQL注入漏洞,以及远程代码执行查询系...

网站安全
16分钟前
1
0
docker 安装oracle11g

1.准备docker环境; 2. docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g --pull 镜像(6个多G) 3.docker run -d -p 1521:1521 -v /data/oracle:/data/oracle --name ora......

xiaoxin
16分钟前
1
1

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部