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

