RabbitMQ 常用命令

本文详细介绍了RabbitMQ的管理操作,包括Vhost虚拟机的创建与删除,用户管理中的用户创建、权限设置,以及角色分配。此外,还涵盖了Web端管理、实例管理、队列、交换器、绑定关系、连接信息、信道和消费者列表的查看等实用命令。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. Vhost虚拟机

每个RabbitMQ服务器都能创建虚拟主机(virtual host),简称vhost。每个vhost本质上是一个独立的小型RabbitMQ服务器,拥有自己独立的队列、交换器及绑定关系等,并且它拥有自己独立的权限,RabbitMQ默认创建vhost为 “/”。

  • 创建vhost:rabbitmqctl add_vhost {vhost}
  • 查看所有vhost:rabbitmqctl list_vhosts
  • 删除指定vhost:rabbitmqctl delete_vhost {vhost}
2. 用户管理

在RabbitMQ中,用户是访问控制的基本单元,且单个用户可以跨越多个vhost进行授权。

  • 创建用户:rabbitmqctl add_user {username} {password}
  • 修改密码:rabbitmqctl change_password {username} {password}
  • 清除密码:rabbitmqctl clear_password {username}
  • 验证用户:rabbitmqctl authenticate_user {username} {password}
  • 删除用户:rabbitmqctl delete_user {username}
  • 用户列表:rabbitmqctl list_users
3. 权限管理

RabbitMQ中,权限控制是以vhost为单位,创建用户时,将被指定至少一个vhost,默认的vhost是 “/”。

  • 授予权限:rabbitmqctl set_permissions [-p vhost] {user}{conf}{write}
    {read}
配置项说明
vhost授权用户访问指定的vhost
user用户名
conf一个用于匹配用户在哪些资源上拥有可配置权限的正则表达式,例如:".*"表示全部
write一个用于匹配用户在哪些资源上拥有可写权限的正则表达式 ,例如:".*"表示全部
read一个用于匹配用户在哪些资源上拥有可读权限的正则表达式,例如:".*"表示全部
  • 收回权限:rabbitmqctl clear_permissions [-p vhost] {username}
  • 虚拟主机权限列表:rabbitmqctl list_permissions [-p vhost]
  • 查看指定用户权限:rabbitmqctl list_user_permissions {username}
4. 角色分配

rabbitmq的角色有5种类型,命令:rabbitmqctl set_user_tags {username} {tag…}

配置项说明
none无任何角色,新创建的用户默认角色为none
management可以访问web管理页面
policymaker包含management的所有权限,并可以管理策略和参数
monitoring包含management的所有权限,并可以看到所有连接、信道及节点相关信息
administartor包含minitoring的所有权限,并可以管理用户、虚拟主机、权限、策略、参数
5. Web端管理
RabbitMQ Management 插件可以提供Web界面来管理RabbitMQ中的虚拟主机、用户、角色、队列、交换器、绑定关系、策略、参数等,也可用于监控RabbitMQ服务的状态及一些统计信息。
  • 启动插件:rabbitmq-plugins enable rabbitmq_management
  • 关闭插件:rabbitmq-plugins disable rabbitmq_management
  • 插件列表:rabbitmq-plugins list
6. Rabbitmq 实例管理

启动

service rabbitmq-server start
systemctl start rabbitmq-server
停止
service rabbitmq-server stop
rabbitmqctl stop
systemctl stop rabbitmq-server
重启
service rabbitmq-server restart
systemctl restart rabbitmq-server
查看状态
service rabbitmq-server status
systemctl status rabbitmq-server
rabbitmqctl status
7. 查看队列列表

rabbitmqctl list_queues[-p vhost][queueinfoitem…]

返回列说明
name队列名称
durable队列是否持久化
auto_delete队列是否自动删除
arguments队列参数
policy应用到队列上的策略名称
pid队列关联的进程ID
owner_pid处理排他队列连接的进程ID
exclusive队列是否排他
8. 查看交换器列表

rabbitmqctl list_exchanges [-p vhost][exchangeinfoitem…]

返回列说明
name交换器名称
type交换器类型
durable交换器是否持久化
auto_delete交换器是否自动删除
internal是否是内置交换器
arguments交换器的参数
policy交换器的策略
9. 查看绑定关系的列表

rabbitmqctl list_bindings [-p] [bindinginfoitem…]

返回列说明
source_name消息来源的名称
source_kind消息来源的类别
destination_name消息目的地的名称
destination_kind消息目的地的种类
routing_key绑定的路由键
arguments绑定的参数
10. 查看连接信息列表

rabbitmqctl list_connections [connectioninfoitem …]

返回列说明
pid与连接相关的进程ID
name连接名称
port服务器端口
host服务器主机名
peer_port服务器对端端口。当一个客户端与服务器连接时,这个客户端的端口就是peer_port
peer_host服务器对端主机名称,或IP
ssl是否启用SSL
state连接状态,包括starting\tning\opening\running\flow\blocking\blocked\closing\closed
channels连接中的信道个数
protocol使用的AMQP协议版本
user与连接相关的用户名
vhost与连接相关的vhost名称
timeout连接超时时长,单位秒
11. 查看信道列表

rabbitmqctl list_channels [channelinfoitem…]

返回列说明
pid与连接相关的进程ID
connection信道所属连接的进程ID
name信道名称
number信道的序号
user与连接相关的用户名
vhost与连接相关的vhost名称
transactional信道是否处于事务模式
confirm信道是否处于 publisher confirm模式
consumer_count信道中的消费者个数
messages_unacknowledged已投递但是还未被ack的消息个数
messages_uncommitted已接收但是还未提交事务的消息个数
acks_uncommitted已ack收到但是还未提交事务的消息个数
messages_unconfirmed已发送但是还未确认的消息个数
perfetch_count消费者的Qos个数限制,0表示无上限
global_prefetch_count整个信道的Qos个数限制
12. 查看消费者列表

rabbitmqctl list_consumers [-p vhost]

返回列说明
arguments参数
channel_pid信道进程id
consumer_tag消费者标记
prefetch_count消费者的Qos个数限制,0表示无上限
queue_name队列名称
至此,RabbitMQ 常用命令分享完毕
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值