rabbitmq 常用命令
極光
發(fā)布于 云南 2025-06-30 · 4676瀏覽 1贊

RabbitMQ 的常用命令可分為服務(wù)管理、用戶管理、虛擬主機(jī)管理和隊(duì)列操作幾類,以下是一些常見的操作命令:

服務(wù)管理命令

# 啟動(dòng) RabbitMQ 服務(wù) sudo systemctl start rabbitmq-server # 停止 RabbitMQ 服務(wù) sudo systemctl stop rabbitmq-server # 重啟 RabbitMQ 服務(wù) sudo systemctl restart rabbitmq-server # 查看 RabbitMQ 服務(wù)狀態(tài) sudo systemctl status rabbitmq-server # 啟用 RabbitMQ 服務(wù)開機(jī)自啟 sudo systemctl enable rabbitmq-server

插件管理命令

# 查看已安裝的插件 rabbitmq-plugins list # 啟用管理界面插件(可通過 http://localhost:15672 訪問) rabbitmq-plugins enable rabbitmq_management # 啟用其他插件(例如 STOMP 協(xié)議支持) rabbitmq-plugins enable rabbitmq_stomp

用戶與權(quán)限管理命令

# 添加新用戶 rabbitmqctl add_user username password # 刪除用戶 rabbitmqctl delete_user username # 修改用戶密碼 rabbitmqctl change_password username newpassword # 列出所有用戶 rabbitmqctl list_users # 設(shè)置用戶角色(administrator、monitoring、policymaker、management) rabbitmqctl set_user_tags username administrator # 設(shè)置用戶權(quán)限(針對(duì)虛擬主機(jī)) rabbitmqctl set_permissions -p / username ".*" ".*" ".*" # 查看用戶權(quán)限 rabbitmqctl list_permissions -p /

虛擬主機(jī)管理命令

# 創(chuàng)建虛擬主機(jī) rabbitmqctl add_vhost vhost_name # 刪除虛擬主機(jī) rabbitmqctl delete_vhost vhost_name # 列出所有虛擬主機(jī) rabbitmqctl list_vhosts # 查看虛擬主機(jī)上的權(quán)限 rabbitmqctl list_permissions -p vhost_name 具體示例 rabbitmqctl delete_vhost dsv # 刪除(會(huì)清除所有隊(duì)列和交換器) rabbitmqctl add_vhost dsv # 重建 rabbitmqctl set_permissions -p dsv <user> ".*" ".*" ".*" # 重新授權(quán)用戶

隊(duì)列與交換器操作命令

# 列出所有隊(duì)列 rabbitmqctl list_queues # 列出指定虛擬主機(jī)中的隊(duì)列 rabbitmqctl list_queues -p vhost_name # 列出所有交換器 rabbitmqctl list_exchanges # 清除隊(duì)列中的所有消息 rabbitmqctl purge_queue queue_name # 強(qiáng)制終止并重新啟動(dòng)節(jié)點(diǎn)(用于故障恢復(fù)) rabbitmqctl force_reset

集群管理命令

# 查看集群狀態(tài) rabbitmqctl cluster_status # 將節(jié)點(diǎn)加入集群 rabbitmqctl join_cluster rabbit@node2 # 從集群中移除節(jié)點(diǎn) rabbitmqctl leave_cluster # 更改節(jié)點(diǎn)的角色 rabbitmqctl change_cluster_node_type disc/ram

刪除隊(duì)列的方法

1. 使用 rabbitmqctl 命令行工具(推薦)

# 刪除指定隊(duì)列(需指定虛擬主機(jī),默認(rèn)為 /) sudo rabbitmqctl -p / delete_queue queue_name # 示例:刪除名為 "order_queue" 的隊(duì)列 sudo rabbitmqctl -p / delete_queue order_queue

其他

強(qiáng)制刪除隊(duì)列 dsv為虛擬機(jī),unrepeated_noise_words 為隊(duì)列名稱 隊(duì)列狀態(tài)異常 ?隊(duì)列處于損壞狀態(tài):若隊(duì)列因崩潰或 Erlang 版本問題處于異常狀態(tài)(如 down 或 NaN),常規(guī)命令可能無法識(shí)別。需強(qiáng)制刪除: rabbitmqctl eval 'Q = rabbit_misc:r(<<"dsv">>, queue, <<"unrepeated_noise_words">>), rabbit_amqqueue:internal_delete(Q, <<"cli">>).' 重啟虛擬機(jī) rabbitmqctl restart_vhost -p dsv 有些虛擬機(jī)重啟會(huì)存在問題,可能是文件損壞問題 mv /var/lib/rabbitmq/mnesia/rabbit@dx-rabbitmq-python-20-100/msg_stores/vhosts/628WB79CIFDYO9LJI6DKMI09L/recovery.dets /tmp/recovery.dets.bak 重啟服務(wù) systemctl restart rabbitmq-server

這些命令涵蓋了 RabbitMQ 的日常運(yùn)維需求。使用時(shí)需注意:

  • 管理命令通常需要 root 權(quán)限或 rabbitmq 用戶權(quán)限
  • 集群操作需在所有節(jié)點(diǎn)上正確配置 erlang cookie
  • 生產(chǎn)環(huán)境中執(zhí)行敏感操作(如刪除隊(duì)列、重置節(jié)點(diǎn))前應(yīng)謹(jǐn)慎確認(rèn)
極光
瀏覽 4676
1
相關(guān)推薦
最新評(píng)論
贊過的人 1
評(píng)論加載中...

暫無評(píng)論,快來評(píng)論吧!