RabbitMq 常用命令和REST API詳解
服務(wù)管理相關(guān)
啟動: service rabbitmq-server start 或 rabbitmq-service start
關(guān)閉: service rabbitmq-server stop 或 rabbitmq-service stop
重啟: service rabbitmq-server restart
查看狀態(tài): rabbitmqctl status
用戶相關(guān)
創(chuàng)建用戶
后面2個參數(shù)是用戶名和密碼
rabbitmqctl add_user userName password
修改密碼
rabbitmqctl change_password userName newPassword
校驗密碼
校驗賬號和密碼是否匹配
rabbitmqctl authenticate_user userName "password"
- 若校驗正確會打印出
Success的字樣 - 若校驗失敗(賬號或密碼錯誤)會打印出
Error的字樣
展示所有用戶
除了用戶名之外,還會顯示每個用戶所屬的角色
rabbitmqctl list_users
刪除用戶
rabbitmqctl delete_user userName
清除密碼
rabbitmqctl clear_password {userName}
角色相關(guān)
用戶角色可通過命令:rabbitmqctl list_users查看
rabbitmq角色有以下幾個:
超級管理員(administrator):可登陸管理控制臺(啟用management plugin的情況下),可查看所有的信息,并且可以對用戶,策略(policy)進行操作監(jiān)控者(monitoring): 可登陸管理控制臺(啟用management plugin的情況下),同時可以查看rabbitmq節(jié)點的相關(guān)信息(進程數(shù),內(nèi)存使用情況,磁盤使用情況等)策略制定者(policymaker): 可登陸管理控制臺(啟用management plugin的情況下), 同時可以對policy進行管理。但無法查看節(jié)點的相關(guān)信息(上圖紅框標識的部分)。普通管理者(management): 僅可登陸管理控制臺(啟用management plugin的情況下),無法看到節(jié)點信息,也無法對策略進行管理。policymaker:包含managerment所有權(quán)限,并且可以管理策略(Policy)和參數(shù)(Parameter)none:無角色, 無法登陸管理控制臺,通常就是普通的生產(chǎn)者和消費者。
設(shè)置用戶角色
將userName設(shè)為administartor角色,當角色不存在時,會自動創(chuàng)建角色,一個用戶只能有一個角色;
在設(shè)置角色時administartor后面不能有空格,否則空格也算是一個字符,rabbitmq不會忽略空格
rabbitmqctl set_user_tags userName administartor
設(shè)置多個角色(無效:設(shè)置后不是2個權(quán)限,而是一個權(quán)限,權(quán)限名稱為:monitoring policymaker)
rabbitmqctl set_user_tags userName monitoring policymaker
Vhost管理
查看所有虛擬主機:rabbitmqctl list_vhosts
添加虛擬主機:rabbitmqctl add_vhost vhostname
刪除虛擬主機:rabbitmqctl delete_vhost vhostname
權(quán)限管理
設(shè)置用戶權(quán)限
-p / 表示指定vHosts
rabbitmqctl set_permissions -p / root ".*" ".*" ".*"
查看用戶權(quán)限
查看所有已設(shè)置了權(quán)限的用戶(無權(quán)限的用戶不展示)
rabbitmqctl list_user_permissions
查看指定用戶的權(quán)限
rabbitmqctl list_user_permissions username
清除用戶權(quán)限
-p / 表示指定vHosts
rabbitmqctl clear_permissions -p / username
web管理相關(guān)
開啟/關(guān)閉web管理頁面
# 開啟web管理頁面 rabbitmq-plugins enable rabbitmq_management # 關(guān)閉web管理頁面 rabbitmq-plugins disable rabbitmq_management
插件相關(guān)
查看插件
rabbitmq-plugins list
應(yīng)用管理
應(yīng)用和節(jié)點都關(guān)閉 :rabbitmqctl stop
關(guān)閉應(yīng)用:rabbitmqctl stop_app
啟動應(yīng)用:rabbitmqctl start_app
隊列管理
查看所有隊列
rabbitmqctl list_queues
清除所有隊列
清楚之前需要先執(zhí)行rabbitmqctl stop_app命令
rabbitmqctl reset
強制清除隊列
rabbitmqctl force_reset
集群管理
查看集群狀態(tài): rabbitmqctl cluster_status
摘除節(jié)點: rabbitmqctl forget_cluster_node [--offline]
組成集群命令: rabbitmqctl join_cluster <clusternode> [--ram]
修改節(jié)點存儲形式: rabbitmqctl change_cluster_node_type disc | ram
修改節(jié)點名稱: rabbitmqctl rename_cluster_node oldnode1 newnode1 [oldnode2 newnode2] [oldnode3 newnode3...]
信息查看
查看所有連接:rabbitmqadmin list connections
概覽 Overview: rabbitmqadmin show overview
查看所有節(jié)點 Node:rabbitmqadmin list nodes
查看所有通道 Channel:rabbitmqadmin list channels
查看所有消費者 Consumer:rabbitmqadmin list consumers
查看所有路由 Exchange:rabbitmqadmin list exchanges
查看所有路由與隊列的關(guān)系綁定 Binding:rabbitmqadmin list bindings
rabbitmqadmin 命令
- -u:用戶名
- -p:密碼
查詢命令
查看所有的交換機:rabbitmqadmin -u root -p woaini list exchanges
查看所有的隊列:rabbitmqadmin -u root -p woaini list queues
查看所有的交換機和隊列的綁定關(guān)系:rabbitmqadmin -u root -p woaini list bindings
查看所有的用戶:rabbitmqadmin -u root -p woaini list users
查看所有的權(quán)限信息:rabbitmqadmin -u root -p woaini list permissions
查看所有的連接信息:rabbitmqadmin -u root -p woaini list connections
查看所有的通道信息:rabbitmqadmin -u root -p woaini list channels
創(chuàng)建交換機
- name:交換機名稱
- durable:是否持久化
- auto_delete:是否自動刪除
- type:交換機類型
rabbitmqadmin -u root -p woaini declare exchange name=exchange_name_1 durable=true auto_delete=false type=direct
創(chuàng)建隊列
rabbitmqadmin -u root -p woaini declare queue name=queue_name_1 durable=true auto_delete=false
綁定隊列和交換機
- source:需要綁定的交換機名稱
- destination:(目標)需要綁定的隊列名稱
執(zhí)行前必須先創(chuàng)建隊列和交換機,否則會報錯:*** Not found: /api/bindings/%2F/e/exchange_name_1/q/queue_name_1
在 direct 交換機下,隊列名稱和routingKey名稱必須一致,否則發(fā)送消息時無法路由
rabbitmqadmin -u root -p woaini declare binding source=exchange_name_1 destination=queue_name_1 routing_key=queue_name_1
發(fā)送消息
rabbitmqadmin -u root -p woaini publish routing_key=routing_key_1 payload="hello yexindong"
查看隊列中的消息
可以查看到剛剛發(fā)送的消息
rabbitmqadmin -u root -p woaini get queue=queue_name_1
其他命令
| 命令 | 解釋 |
|---|---|
| rabbitmqadmin list users | 查看所有用戶 User |
| rabbitmqadmin list users name | 查看所有用戶名 Username |
| rabbitmqadmin list users tags | 查看所有用戶角色 |
| rabbitmqadmin list vhosts | 查看所有虛擬主機 |
| rabbitmqadmin list connections | 查看所有連接 |
| rabbitmqadmin list exchanges | 查看所有路由 Exchange |
| rabbitmqadmin list bindings | 查看所有路由與隊列的關(guān)系綁定 Binding |
| rabbitmqadmin list permissions | 查看所有角色的權(quán)限 Permission |
| rabbitmqadmin list channels | 查看所有通道 Channel |
| rabbitmqadmin list consumers | 查看所有消費者 Consumer |
| rabbitmqadmin list queues | 查看所有消息隊列 Queue |
| rabbitmqadmin list nodes | 查看所有節(jié)點 Node |
| rabbitmqadmin show overview | 概覽 Overview |
| rabbitmqadmin list bindings source destination_type destination properties_key | 查看所有路由與隊列的關(guān)系綁定的詳細信息 Binding |
| rabbitmqadmin declare queue name=test durable=true | 定義一個隊列queue,durable=true代表持久化打開。 |
| rabbitmqadmin declare exchange name=my.fanout type=fanout | 定義一個Fanout路由 |
| rabbitmqadmin declare exchange name=my.direct type=direct | 定義一個Direct路由 |
| rabbitmqadmin declare exchange name=my.topic type=topic | 定義一個Topic路由 |
| rabbitmqadmin declare binding source=my.fanout destination=test routing_key=first | 定義 binding |
| rabbitmqadmin publish routing_key=test payload=“hello world” | 發(fā)布一條消息 |
| rabbitmqadmin publish routing_key=my.test exchange=my.topic payload=“hello world” | 使用路由轉(zhuǎn)發(fā)消息 |
| rabbitmqadmin get queue=test requeue=true | 查看消息,不消費 |
| rabbitmqadmin get queue=test requeue=false | 查看消息,并消費 |
| rabbitmqadmin purge queue name=test | 刪除隊列中的所有消息 |
| rabbitmqadmin delete queue name=hello | 刪除消息隊列 Queue |
| rabbitmqadmin delete user name=test | 刪除用戶 User |
| rabbitmqadmin delete exchange name=test | 刪除路由器 Exchange |
| rabbitmqadmin delete binding source=‘kk’ destination_type=queue destination=test properties_key=test | 刪除路由器與消息隊列的關(guān)系綁定 Binding |
| rabbitmqadmin -f raw_json list users | raw_json 格式化輸出 |
| rabbitmqadmin -f long list users | 格式化輸出 |
| rabbitmqadmin -f pretty_json list users pretty_json | 格式化輸出 |
| rabbitmqadmin -f kvp list users | 格式化輸出 |
| rabbitmqadmin -f tsv list users | 格式化輸出 |
| rabbitmqadmin -f table list users | table 格式化輸出 |
| rabbitmqadmin -f bash list users | bash 格式化輸出 |
REST API
查看所有隊列統(tǒng)計數(shù)據(jù)
-i 表示顯示響應(yīng)頭信息。
-u 指定用戶密碼
curl -i -u root:woaini http://localhost:15672/api/queues
查看虛擬主機 myvh 下 hello-queue 隊列的數(shù)據(jù)統(tǒng)計
curl -i -u root:woaini http://localhost:15672/api/queues/myvh/hello-queue
查看虛擬主機 / 下 hello-queue 隊列的數(shù)據(jù)統(tǒng)計
需要將 / 進行轉(zhuǎn)義后結(jié)果為:%2f
curl -i -u root:woaini http://localhost:15672/api/queues/%2f/hello-queue
創(chuàng)建隊列
在 /myvh 虛擬主機下創(chuàng)建一個名為 javaboy-queue 的隊列
curl -i -u root:woaini -XPUT -H "Content-Type:application/json" -d '{"auto_delete":false,"durable":true}' http://localhost:15672/api/queues/myvh/javaboy-queue查看當前連接信息
curl -i -u root:woaini http://localhost:15672/api/connections
查看當前用戶信息
curl -i -u root:woaini http://localhost:15672/api/users
創(chuàng)建用戶
創(chuàng)建一個名為 zhangsan,密碼是 123 ,角色是 administrator 的用戶。
curl -i -u root:woaini -H "{Content-Type:application/json}" -d '{"password":"123","tags":"administrator"}' -XPUT http://localhost:15672/api/users/zhangsan為新用戶設(shè)置 vhost
將名為 zhangsan 的用戶設(shè)置到名為 myvh 的 vhost 下:
curl -i -u root:woaini -H "{Content-Type:application/json}" -d '{"configure":".*","write":".*","read":".*"}' -XPUT http://localhost:15672/api/permissions/myvh/zhangsan到此這篇關(guān)于RabbitMq 常用命令和REST API詳解的文章就介紹到這了,更多相關(guān)RabbitMq 命令和REST API內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot創(chuàng)建JSP登錄頁面功能實例代碼
這篇文章主要介紹了SpringBoot創(chuàng)建JSP登錄頁面功能實例代碼,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2017-04-04
java json字符串轉(zhuǎn)JSONObject和JSONArray以及取值的實例
這篇文章主要介紹了java json字符串轉(zhuǎn)JSONObject和JSONArray以及取值的實例的相關(guān)資料,需要的朋友可以參考下2017-05-05
MyBatis Plus 查詢結(jié)果映射為空對象的問題及解決方案
本文詳細探討了MyBatisPlus中查詢結(jié)果映射為空對象的問題,通過問題重現(xiàn)、原理分析和多種解決方案,幫助開發(fā)者有效應(yīng)對這一問題,感興趣的朋友跟隨小編一起看看吧2025-12-12
Java使用Spire.XLS for Java實現(xiàn)Excel的行列凍結(jié)與解除
這篇文章主要為大家詳細介紹了Java如何使用Spire.XLS for Java實現(xiàn)Excel的行列凍結(jié)與解除,文中的示例代碼講解詳細,有需要的小伙伴可以了解下2025-10-10

