rabbitmq 管理命令

概述

 

rabbitmq 节点类型改变

上篇日志中,我们已经介绍过 rabbitmq 节点的分类及集群模式

我们搭建了一个默认模式的集群,可以通过 rabbitmqctl cluster_status 命令看到,默认情况下,所有的节点都是 disc 节点,也就是说状态信息与队列消息同时存储在内存中和磁盘上,这样的好处是可以保证数据的可靠性,但是性能有所下降,因此,上文提到,通常的建议是一个集群中只配置一个磁盘 node,用来保证集群数据的安全性,其他节点配置成 ram 节点,用来提高集群的工作性能

要想改变节点类型,执行下列命令

 

  1. 使用 rabbitmqctl stop_app 停止 rabbitmq 应用
  2. 执行 rabbitmqctl change_cluster_node_type {disc | ram} 切换节点类型
  3. 执行 rabbitmqctl start_app 重新启动 rabbitmq 应用
  4. 可以通过 rabbitmqctl cluster_status 命令看到节点已经变成了 ram 节点

 

05f8db1e4a49bc904bd001167b04b1c4.png?id=3377789&v=1

 

删除集群中的某个节点

想要执行删除集群中节点的命令,必须同时满足两个条件:

 

  1. 执行删除节点命令的节点是一个磁盘节点
  2. 除执行删除节点命令的节点,集群中的其他节点必须都已经停止

 

最好是首先将所有节点都改变为 disc 节点,然后再进行操作

满足上面两个条件,执行 rabbitmqctl forget_cluster_node {node_name} 即可让指定的节点退出集群

 

25e060a0aa24f9543aa17ac164ef535a.png?id=3377790&v=1

然而,此后集群中其他节点启动时会报错:

Node rabbit@se1 thinks it's clustered with node rabbit@se2, but rabbit@se2 disagrees

此时需要执行 rabbitmqctl reset 清除集群信息,然后执行 rabbitmqctl start_app 即可启动节点

 

灾后恢复

若整个集群被停掉了,应保证最后一个down掉的节点被最先启动,若不能则要使用forget_cluster_node命令将其移出集群

若集群中节点几乎同时以不可控的方式down了此时在其中一个节点使用force_boot命令重启节点

 

创建镜像队列

所谓的镜像队列,就是 rabbitmq 的 ha 模式,也就是同步队列,队列中的数据在所有的消息队列节点中复制存储,保证了数据的可靠性

有两种方法创建镜像队列:

 

让节点中的某个队列成为镜像队列

 

执行 rabbitmqctl sync_queue {queue-name} 可以让该节点的指定队列成为镜像队列,队列中的数据将会在整个集群的每个节点上复制存储

可以通过执行 rabbitmqctl cancel_sync_queue {queue-name} 取消某个队列的同步属性

通过 set_policy 命令建立镜像队列

set_policy 命令用来设置协议:

rabbitmqctl set_policy [-p vhostpath] [--priority priority] [--apply-to apply-to] {name} {pattern} {definition}

  • name -- 协议名称
  • pattern -- 匹配的正则表达式
  • definition -- json term 的形式来定义这个协议
  • priority -- 优先级,默认为 0,数字越大优先级越高
  • apply-to -- 协议类型,有三种选择:queues、exchanges、all,默认为 all

 

可见,set_policy 提供了很大的灵活性,他同样支持将指定的队列设置为镜像队列:

rabbitmqctl set_policy ha-all "^ha\." '{"ha-mode":"all"}'

 

可以通过 rabbitmqctl list_policies 命令查看当前的协议列表

可以通过 rabbitmqctl clear_policy [-p vhostpath] {name} 清除某条协议

 

服务器状态的查询

 

队列列表查询

rabbitmqctl list_queues [-p vhostpath] [queueinfoitem…]

queueinfoitem 是可选参数,也可以以下一个或多个的组合:

  • name
  • durable
  • auto_delete
  • arguments
  • policy
  • pid
  • owner_pid
  • exclusive_consumer_pid
  • exclusive_consumer_tag
  • messages_ready
  • messages_unacknowledged
  • messages
  • consumers
  • active_consumers
  • memory
  • slave_pids
  • synchronized_slave_pids
  • status

交换机列表查询

rabbitmqctl list_exchanges [-p vhostpath] [exchangeinfoitem…]

exchangeinfoitem 是可选参数,也可以以下一个或多个的组合:

  • name
  • type
  • durable
  • auto_delete
  • internal
  • arguments
  • policy

绑定列表查询

rabbitmqctl list_bindings [-p vhostpath] [bindinginfoitem…]

bindinginfoitem 是可选参数,也可以以下一个或多个的组合:

  • source_name
  • source_kind
  • destination_name
  • destination_kind
  • routing_key
  • arguments

 

用户管理

 

用户的新增、删除、修改及查询

  • 新增用户 -- rabbitmqctl  add_user  Username  Password
  • 删除用户 -- rabbitmqctl  delete_user  Username
  • 修改密码 -- rabbitmqctl  change_password  Username  Newpassword
  • 查看用户列表 -- rabbitmqctl  list_users

用户角色

 

系统提供了四个用户角色,使用 rabbitmqctl  set_user_tags  User  Tag 可以为用户设置角色,Tag 参数就是用户的角色

你可以自定义 Tag,也可以为用户指定多个角色

系统提供的四个角色是:

  1. administrator -- 超级管理员,可以查看和修改所有信息
  2. monitoring -- 监控者,可以查看 rabbitmq 节点的相关信息 (进程数,内存使用情况,磁盘使用情况等)
  3. policymaker -- 策略制定者,可以对 policy 进行管理,但无法查看节点相关信息
  4. management -- 普通管理者,无法看到节点信息,也无法对策略进行管理,但可以登录管理控制台

用户自定义角色则不能登录到管理控制台

用户权限

用户权限指的是用户对exchange,queue的操作权限,包括配置权限,读写权限

配置权限会影响到exchange,queue的声明和删除

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

以下命令可以设置、查看、清除用户权限:

  • 设置用户权限 -- rabbitmqctl  set_permissions  -p  VHostPath  User  ConfP  WriteP  ReadP
  • 查看用户权限 -- rabbitmqctl  list_permissions  [-p  VHostPath]
  • 查看指定用户权限信息 -- rabbitmqctl  list_user_permissions  User
  • 清除用户的权限信息 -- rabbitmqctl  clear_permissions  [-p VHostPath]  User

 

参考资料

rabbitMQ入门详解 -- http://blog.csdn.net/cugb1004101218/article/details/21243927?utm_source=tuicool&utm_medium=referral

rabbitmq 用户管理 -- http://www.cnblogs.com/AloneSword/p/4200051.html

 

转载于:https://my.oschina.net/yygh/blog/914983

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值