RabbitMQ常见命令速查

RabbitMQ 常用命令主要分为 服务管理、用户管理、虚拟主机管理、队列/交换机查看、消息管理、插件管理 等。下面介绍日常运维和开发中最常用的命令。

1. RabbitMQ 服务管理

查看 RabbitMQ 状态

rabbitmqctl status

查看节点状态、版本、运行时间、内存等信息。



启动 RabbitMQ

Linux:

systemctl start rabbitmq-server

或者:

rabbitmq-server -detached


停止 RabbitMQ

systemctl stop rabbitmq-server


重启 RabbitMQ

systemctl restart rabbitmq-server


查看服务状态

systemctl status rabbitmq-server


2. 用户管理

查看用户列表

rabbitmqctl list_users

示例:

Listing users ...
admin   [administrator]
guest   [administrator]


创建用户

rabbitmqctl add_user 用户名 密码

例如:

rabbitmqctl add_user test 123456


删除用户

rabbitmqctl delete_user 用户名

例如:

rabbitmqctl delete_user test


修改密码

rabbitmqctl change_password 用户名 新密码

例如:

rabbitmqctl change_password test 654321


设置用户权限

RabbitMQ 权限格式:

配置权限  写权限  读权限

命令:

rabbitmqctl set_permissions -p / 用户名 ".*" ".*" ".*"

例如:

rabbitmqctl set_permissions -p / test ".*" ".*" ".*"

表示:

  • 可以配置所有资源
  • 可以写所有队列
  • 可以读所有队列


设置管理员角色

rabbitmqctl set_user_tags 用户名 administrator

例如:

rabbitmqctl set_user_tags test administrator

角色类型:

角色权限
administrator管理员
monitoring查看监控
policymaker策略管理
management普通管理


3. Virtual Host 管理

RabbitMQ 使用 vhost 隔离不同业务。

查看 vhost

rabbitmqctl list_vhosts


创建 vhost

rabbitmqctl add_vhost /test


删除 vhost

rabbitmqctl delete_vhost /test


给用户绑定 vhost 权限

rabbitmqctl set_permissions -p /test 用户名 ".*" ".*" ".*"


4. 查看交换机 Exchange

查看所有交换机

rabbitmqctl list_exchanges

输出:

name       type
amq.direct direct
amq.topic  topic


查看详细信息:

rabbitmqctl list_exchanges name type durable

字段:

  • name:交换机名称
  • type:类型
  • durable:是否持久化

常见 exchange 类型:

类型用途
direct精确匹配 routing key
topic通配符匹配
fanout广播
headers根据 header 匹配


5. 查看队列 Queue

查看所有队列

rabbitmqctl list_queues

示例:

queue1  10
queue2  0

第二列是消息数量。



查看详细队列信息

rabbitmqctl list_queues name messages consumers durable

例如:

name        messages consumers durable
order.queue 100      3         true

含义:

  • messages:消息数量
  • consumers:消费者数量
  • durable:是否持久化


6. 查看连接和消费者

查看连接

rabbitmqctl list_connections


查看消费者

rabbitmqctl list_consumers


查看 channel

rabbitmqctl list_channels


7. 清空队列消息

清空某个队列:

rabbitmqctl purge_queue 队列名

例如:

rabbitmqctl purge_queue order.queue

注意:

会删除队列里的所有未消费消息。


8. 删除队列

rabbitmqctl delete_queue 队列名

例如:

rabbitmqctl delete_queue test.queue


9. 删除交换机

rabbitmqctl delete_exchange 交换机名

例如:

rabbitmqctl delete_exchange order.exchange


10. 插件管理

查看插件

rabbitmq-plugins list


开启 Web 管理界面

rabbitmq-plugins enable rabbitmq_management

开启后:

访问:

http://服务器IP:15672

默认端口:

端口用途
5672AMQP协议
15672Web管理界面
25672集群通信


禁用插件

rabbitmq-plugins disable rabbitmq_management


11. 集群相关命令

查看集群节点

rabbitmqctl cluster_status


加入集群

例如:

rabbitmqctl join_cluster rabbit@node1


离开集群

rabbitmqctl forget_cluster_node rabbit@node2


12. 日常排查常用组合

查看队列堆积

rabbitmqctl list_queues name messages consumers

关注:

messages 很大
consumers=0

说明:

  • 消费者挂了
  • 消费速度跟不上生产速度


查看谁连接了 RabbitMQ

rabbitmqctl list_connections user peer_host peer_port


查看节点资源

rabbitmqctl status

重点关注:

  • memory
  • disk_free
  • processes


13. rabbitmq-diagnostics(新版推荐)

RabbitMQ 新版本推荐使用:

健康检查

rabbitmq-diagnostics check_running


查看端口监听

rabbitmq-diagnostics listeners


查看环境信息

rabbitmq-diagnostics environment


14. 常用命令速查表

操作命令
查看状态rabbitmqctl status
启动服务systemctl start rabbitmq-server
停止服务systemctl stop rabbitmq-server
查看用户rabbitmqctl list_users
创建用户rabbitmqctl add_user user pwd
创建vhostrabbitmqctl add_vhost /name
查看队列rabbitmqctl list_queues
查看交换机rabbitmqctl list_exchanges
清空队列rabbitmqctl purge_queue queue
查看连接rabbitmqctl list_connections
开启管理界面rabbitmq-plugins enable rabbitmq_management
查看集群rabbitmqctl cluster_status

这些命令基本覆盖 RabbitMQ 日常开发、部署和故障排查场景。


文章标签:

评论(0)