Skip to content

RabbitMQ 命令速查表

概述

本文档提供 RabbitMQ 常用命令的快速参考,包括服务管理、用户管理、队列操作等。

服务管理命令

服务启停

命令说明
rabbitmq-server启动 RabbitMQ 服务器
rabbitmq-server -detached后台启动服务器
rabbitmqctl stop停止服务和节点
rabbitmqctl stop_app仅停止应用(节点保持运行)
rabbitmqctl start_app启动应用
rabbitmqctl restart重启服务

状态查看

命令说明
rabbitmqctl status查看节点状态
rabbitmqctl environment查看环境信息
rabbitmqctl report生成状态报告
rabbitmqctl node_health_check节点健康检查

用户管理命令

用户操作

命令说明
rabbitmqctl list_users列出所有用户
rabbitmqctl add_user <username> <password>添加用户
rabbitmqctl delete_user <username>删除用户
rabbitmqctl change_password <username> <newpass>修改密码
rabbitmqctl authenticate_user <username> <password>验证用户

权限管理

命令说明
rabbitmqctl list_user_permissions <username>查看用户权限
rabbitmqctl set_permissions [-p vhost] <user> <conf> <write> <read>设置权限
rabbitmqctl clear_permissions [-p vhost] <username>清除权限
bash
# 权限设置示例
rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"
rabbitmqctl set_permissions -p /vhost1 user1 "^queue-" ".*" ".*"

角色管理

角色说明
administrator管理员,可管理用户、虚拟主机、策略等
monitoring监控者,可查看所有连接和队列
policymaker策略制定者,可管理策略和参数
management管理者,可管理自己虚拟主机
bash
# 设置用户角色
rabbitmqctl set_user_tags admin administrator
rabbitmqctl set_user_tags monitor monitoring
rabbitmqctl set_user_tags user1 policymaker,management

虚拟主机命令

命令说明
rabbitmqctl list_vhosts列出所有虚拟主机
rabbitmqctl add_vhost <vhost>添加虚拟主机
rabbitmqctl delete_vhost <vhost>删除虚拟主机
rabbitmqctl list_vhost_limits [-p vhost]查看虚拟主机限制
bash
# 虚拟主机操作示例
rabbitmqctl add_vhost /production
rabbitmqctl set_permissions -p /production admin ".*" ".*" ".*"

队列命令

队列查询

命令说明
rabbitmqctl list_queues列出所有队列
rabbitmqctl list_queues name messages consumers列出队列详情
rabbitmqctl list_queues -p <vhost>列出指定虚拟主机队列
bash
# 队列查询示例
rabbitmqctl list_queues name messages consumers memory
rabbitmqctl list_queues name durable auto_delete arguments
rabbitmqctl list_queues -p /production name messages

队列操作

命令说明
rabbitmqctl purge_queue <queue>清空队列消息
rabbitmqctl delete_queue <queue>删除队列
bash
# 队列操作示例
rabbitmqctl purge_queue my_queue
rabbitmqctl delete_queue unused_queue

交换机命令

命令说明
rabbitmqctl list_exchanges列出所有交换机
rabbitmqctl list_exchanges name type durable列出交换机详情
rabbitmqctl list_exchanges -p <vhost>列出指定虚拟主机交换机
bash
# 交换机查询示例
rabbitmqctl list_exchanges name type durable auto_delete
rabbitmqctl list_exchanges -p /production name type

绑定命令

命令说明
rabbitmqctl list_bindings列出所有绑定
rabbitmqctl list_bindings -p <vhost>列出指定虚拟主机绑定
bash
# 绑定查询示例
rabbitmqctl list_bindings source_name destination_name routing_key

连接命令

命令说明
rabbitmqctl list_connections列出所有连接
rabbitmqctl list_connections peer_host peer_port user列出连接详情
rabbitmqctl close_connection <connection> <reason>关闭连接
bash
# 连接管理示例
rabbitmqctl list_connections peer_host peer_port user channels
rabbitmqctl close_connection "<connection_pid>" "Manual close"

通道命令

命令说明
rabbitmqctl list_channels列出所有通道
rabbitmqctl list_channels connection user consumer_count列出通道详情
bash
# 通道查询示例
rabbitmqctl list_channels connection user consumer_count messages_unacknowledged

消费者命令

命令说明
rabbitmqctl list_consumers列出所有消费者
rabbitmqctl list_consumers -p <vhost>列出指定虚拟主机消费者

集群命令

集群管理

命令说明
rabbitmqctl cluster_status查看集群状态
rabbitmqctl join_cluster <node>加入集群
rabbitmqctl forget_cluster_node <node>移除集群节点
rabbitmqctl reset重置节点(离开集群)
rabbitmqctl force_reset强制重置节点
bash
# 集群操作示例
rabbitmqctl stop_app
rabbitmqctl join_cluster rabbit@node1
rabbitmqctl start_app
rabbitmqctl cluster_status

节点类型

命令说明
rabbitmqctl change_cluster_node_type disc更改为磁盘节点
rabbitmqctl change_cluster_node_type ram更改为内存节点

插件命令

命令说明
rabbitmq-plugins list列出所有插件
rabbitmq-plugins list -e列出已启用插件
rabbitmq-plugins enable <plugin>启用插件
rabbitmq-plugins disable <plugin>禁用插件
rabbitmq-plugins is_enabled <plugin>检查插件状态
bash
# 插件操作示例
rabbitmq-plugins enable rabbitmq_management
rabbitmq-plugins enable rabbitmq_mqtt rabbitmq_stomp
rabbitmq-plugins disable rabbitmq_federation

策略命令

命令说明
rabbitmqctl list_policies列出所有策略
rabbitmqctl set_policy [-p vhost] <name> <pattern> <definition>设置策略
rabbitmqctl clear_policy [-p vhost] <name>清除策略
bash
# 策略操作示例
rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all","ha-sync-mode":"automatic"}'
rabbitmqctl set_policy -p /production ttl ".*" '{"message-ttl":3600000}'
rabbitmqctl clear_policy ha-all

参数命令

命令说明
rabbitmqctl list_parameters列出所有参数
rabbitmqctl set_parameter [-p vhost] <component> <name> <value>设置参数
rabbitmqctl clear_parameter [-p vhost] <component> <name>清除参数

诊断命令

rabbitmq-diagnostics

命令说明
rabbitmq-diagnostics status诊断状态
rabbitmq-diagnostics check_running检查运行状态
rabbitmq-diagnostics check_alarms检查告警
rabbitmq-diagnostics check_local_alarms检查本地告警
rabbitmq-diagnostics memory_breakdown内存分析
rabbitmq-diagnostics listeners监听端口
rabbitmq-diagnostics erlang_versionErlang 版本
rabbitmq-diagnostics schema_infoSchema 信息
bash
# 诊断示例
rabbitmq-diagnostics memory_breakdown
rabbitmq-diagnostics -n rabbit@node1 check_alarms

rabbitmqadmin 命令

基础操作

命令说明
rabbitmqadmin list queues列出队列
rabbitmqadmin list exchanges列出交换机
rabbitmqadmin list bindings列出绑定
rabbitmqadmin list connections列出连接
rabbitmqadmin list users列出用户
rabbitmqadmin list vhosts列出虚拟主机

消息操作

命令说明
rabbitmqadmin publish routing_key=<key> payload=<msg>发布消息
rabbitmqadmin get queue=<queue>获取消息
rabbitmqadmin get queue=<queue> count=<n>获取多条消息
bash
# 消息操作示例
rabbitmqadmin publish exchange=amq.default routing_key=test payload="Hello"
rabbitmqadmin get queue=test ackmode=ack_requeue_false

资源管理

命令说明
rabbitmqadmin declare queue name=<name>声明队列
rabbitmqadmin declare exchange name=<name> type=<type>声明交换机
rabbitmqadmin declare binding source=<ex> destination=<queue>声明绑定
rabbitmqadmin delete queue name=<name>删除队列
rabbitmqadmin delete exchange name=<name>删除交换机

使用示例

常用操作流程

bash
# 1. 创建用户和虚拟主机
rabbitmqctl add_vhost /production
rabbitmqctl add_user prod_user password123
rabbitmqctl set_permissions -p /production prod_user ".*" ".*" ".*"
rabbitmqctl set_user_tags prod_user management

# 2. 启用管理插件
rabbitmq-plugins enable rabbitmq_management

# 3. 配置高可用策略
rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'

# 4. 检查状态
rabbitmqctl status
rabbitmqctl cluster_status

故障排查流程

bash
# 1. 检查服务状态
rabbitmqctl status

# 2. 检查告警
rabbitmq-diagnostics check_alarms

# 3. 查看内存使用
rabbitmq-diagnostics memory_breakdown

# 4. 查看连接
rabbitmqctl list_connections

# 5. 查看队列积压
rabbitmqctl list_queues name messages

注意事项

  1. 权限要求: 部分命令需要管理员权限
  2. 节点名称: 集群操作注意指定正确的节点名称
  3. 虚拟主机: 操作时注意指定正确的虚拟主机
  4. 命令位置: 命令需在 RabbitMQ 安装目录或已配置环境变量

相关链接