Appearance
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_version | Erlang 版本 |
rabbitmq-diagnostics schema_info | Schema 信息 |
bash
# 诊断示例
rabbitmq-diagnostics memory_breakdown
rabbitmq-diagnostics -n rabbit@node1 check_alarmsrabbitmqadmin 命令
基础操作
| 命令 | 说明 |
|---|---|
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注意事项
- 权限要求: 部分命令需要管理员权限
- 节点名称: 集群操作注意指定正确的节点名称
- 虚拟主机: 操作时注意指定正确的虚拟主机
- 命令位置: 命令需在 RabbitMQ 安装目录或已配置环境变量
