RabbitMQ管理

5.1 多租户管理

  每个RabbitMQ服务器都能创建虚拟的消息服务器,我们称之为虚拟主机(virtual host),简称为vhost,每一个vhost本质上是一个独立的小型RabbitMQ服务器,拥有自己独立的队列、交换器、绑定关系等,并且它拥有自己独立的权限,vhost之间是绝对隔离的,vhost是AMQP的基础,客户端在连接的时候必须指定一个,默认为"/",添加和删除vhost的相关命令如下:

  • rabbitmqctl add_vhost vhost1
  • rabbitmqctl delete_vhost vhost1
      在RabbitMQ中,权限控制是以vhost为单位的,当创建一个用户时,用户通常会被指派至少一个vhost,并且只能访问被指派的vhost内的队列,相关的授权命令为:rabbitmqctl set_permissions [-p vhost] {user} {conf} {write} {read},各个参数说明如下:
  • vhost:授予用户访问权限的vhost名称
  • user:可以访问指定vhost的用户名
  • conf:用于匹配用户在哪些资源上拥有可配置权限的正则表达式
  • write:在哪些资源上拥有可写资源的正则表达式
  • read:用户在哪些资源上拥有可读权限的正则表达式
    同时,消除权限也是在vhost级别对用户而言的,命令为:rabbitmqctl clear_permissions [-p vhost] {username};
    其中,rabbitmqctl是用来管理RabbitMQ中间件的命令行工具。

5.2 用户管理

这里简单介绍几个命令:
创建用户:rabbitmqctl add_user root root123
修改密码:rabbitmqctl change_password root root321
删除用户:rabbitmqctl delete_user root
用户列表:rabbitmqctl list_users
用户的角色(tag)分为五种类型:

  • none:默认角色,即无任何角色
  • management:可以访问web管理页面
  • policymaker:包含management的所有权限,并且可以管理策略(policy)和参数
  • monitoring:包含management的所有权限,并且可以看到所有连接、信道及节点的相关信息
  • administrator:包含monitoring的所有权限,并且可以管理用户、虚拟主机、权、策略、参数等,代表了最高权限
    设置用户的权限:rabbitmqctl set_user_tags root monitoring

5.3 Web端管理

rabbitmqctl不太好用,所以RabbitMQ的开发团队开发了RabbitMQ management插件(同样是由Erlang语言编写)来提供一个Web管理二面用来管理RabbitMQ,使用Web界面之前首先要启动RabbitMQ management插件

5.4 应用与集群管理

5.4.1 应用管理

rabbitmqctl shutdown:停止运行RabbitMQ的Erlang虚拟机和RabbitMQ服务应用,如果RabbitMQ服务关闭失败,则会返回一个非零值;
rabbitmqctl stop_apo:停止RabbitMQ,但是Erlang虚拟机还在运行;
rabbitmqctl start_app:执行了其他管理操作之后,从新启动之前挺值得RabbitMQ应用;
rabbitmqctl reset:将RabbitMQ节点重置还原到最初状态;

5.4.2 集群管理

rabbitmqctl join_cluster:将节点加入指定集群
rabbitmqctl cluster_status:显示集群的状态
rabbitmqctl change_cluster_node_type:修改集群节点的类型
rabbitmqctl forget_cluster_node:将节点从集群中删除
rabbitmqctl set_cluster_name:设置集群名称

5.5 服务的状态

rabbitmqctl list_queues name durable:列出所有的队列,返回值包含名称、是否、持久化;
rabbitmqctl list_exchangees
rabbitmqctl list_bindings
rabbitmqctl list_connections

rabbitmqctl status:显示broker的状态
用户、Parameter、vhost、权限等都可以通过rabbitmqctl工具来完成,反观队列、交换器、绑定关系等的创建则无法用rabbitmqctl完成,到目前为止介绍的只有通过客户端或者Web管理界面完成,这对于ctl爱好者十分遗憾,于是,可以通过eval扩展来实现,命令太过于复杂,这里不做展示。

5.6 HTTP API接口管理

RabbitMQ Management插件不见提供了Web界面,还提供了HTTP API接口来方便调用,比如创建一个队列就可以通过/api/queues/vhos/name接口来实现。

如果是使用curl来调用HTTP API,或许,RabbitMQ Management提供的rabbitmqadmin会显得更加方便,它包装了HTTP API接口,比如创建一个队列可以使用如下命令:
./rabbitmqadmin -u rrot -p root123 declare queue name=queue1

5.7 小结

本章主要介绍了RabbitMQ的管理,不必死背命令,可以作为一个手册用来查阅,rabbitmqctl是RabbitMQ中提供的最为复杂的cli管理工具,还有一个重点就是rabbitmqctl management这个插件,他不仅提供了Web管理页面,还提供了HTTP API以及rabbitmqadmin。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值