必須要掌握的 RabbitMQ 操作命令

@[toc] 關於 RabbitMQ 的管理,我們可以通過網頁來進行,在松哥前面的文章中也和小夥伴們做了相關的介紹了:

除了通過 Web 管理頁面來進行管理之外,我們也可以通過命令行來進行管理,之前松哥在RabbitMQ 中的 VirtualHost 該如何理解一文中介紹過幾個 RabbitMQ 管理命令。

也在另類玩法!使用 REST API 操作 RabbitMQ一文中介紹過一些相關的 REST API,在方便發送 HTTP 請求的地方調用這些 REST API,還是非常方便的。但是,在一些不方便發送 HTTP 請求的地方,這些 REST API 用着並不太方便,那麼今天松哥就給大家再來介紹 RabbitMQ 的另一種玩法---rabbitmqadmin。

1. rabbitmqadmin

我們自己平時做練習,一般都會開啓 RabbitMQ 的 Web 管理頁面,然而在生產環境下,經常是沒有 Web 管理頁面的,只能通過 CLI 命令去管理 MQ。

其實呀,Web 管理頁面雖然友好,但是很多時候沒有 CLI 快捷,而且通過 CLI 命令行的操作,我們可以做更多的定製,例如將關鍵信息查出來後提供給集中的監控系統以觸發報警。

直接操作 CLI 命令行有點麻煩,RabbitMQ 提供了 CLI 管理工具 rabbitmqadmin ,其實就是基於 RabbitMQ 的 HTTP API,用 Python 寫的一個腳本。因爲 REST API 手動寫請求還是挺麻煩的,這些腳本剛好替我們簡化了這個操作,讓這個事情變得更加簡單了。

使用 rabbitmqadmin 要先會安裝它。

如果我們創建 RabbitMQ 容器的時候使用的是 rabbitmq:3-management 鏡像,那麼默認情況下,rabbitmqadmin 就是安裝好的。

否則可能需要我們自己安裝 rabbitmqadmin,安裝方式很簡單,

首先確認你的設備上安裝了 Python,這是最基本的,因爲 rabbitmqadmin 這個工具就是 Python 腳本。

然後開啓 RabbitMQ 的 Web 管理頁面,然後輸入如下地址(我的管理頁面度那口映射爲 25672):

http://localhost:25672/cli/index.html

在打開的頁面中就可以看到 rabbitmqadmin 的下載鏈接。將 rabbitmqadmin 下載下來後,然後賦予其可執行權限即可:

chmod +x rabbitmqadmin

下載後的 rabbitmqadmin 我們可以直接用記事本打開,裏邊其實就是一堆 Python 腳本。

這套流程操作下來還是挺麻煩的,所以,我建議大家直接使用 rabbitmq:3-management 鏡像,一步到位。

2. rabbitmqadmin 的功能

  • 列出 exchanges, queues, bindings, vhosts, users, permissions, connections and channels。
  • 創建和刪除 exchanges, queues, bindings, vhosts, users and permissions。
  • 發佈和獲取消息,以及消息詳情。
  • 關閉連接和清空隊列。
  • 導入導出配置。

接下來松哥就這些功能逐一和小夥伴們進行介紹。

3.列出各種信息

查看所有交換機:

rabbitmqadmin list exchanges

查看所有隊列:

rabbitmqadmin list queues

查看所有 Binding:

rabbitmqadmin list bindings

查看所有虛擬主機:

rabbitmqadmin list vhosts

查看所有用戶信息:

rabbitmqadmin list users

查看所有權限信息:

rabbitmqadmin list permissions

查看所有連接信息:

rabbitmqadmin list connections

查看所有通道信息:

rabbitmqadmin list channels

4. 一個完整的例子

接下來我們用 rabbitmqadmin 來寫一個完整的消息收發例子看看。

首先創建一個名爲 javaboy-exchange 的交換機:

rabbitmqadmin declare exchange name=javaboy-exchange durable=true auto_delete=false type=direct

這裏各種參數都好理解,我就不多說了。

接下來創建一個名爲 javaboy-queue 的隊列:

rabbitmqadmin declare queue name=javaboy-queue durable=true auto_delete=false

接下來再創建一個 Binding,將交換機和消息隊列綁定起來:

rabbitmqadmin declare binding source=javaboy-exchange destination=javaboy-queue routing_key=javaboy-routing

這裏涉及到到三個概念:

  • source:源,其實就是指交換機。
  • destination:目標,其實就是指消息隊列。
  • routing_key:這個就是路由的 key。

接下來發布一條消息:

rabbitmqadmin publish routing_key=javaboy-queue payload="hello javaboy"

這裏參數都很簡單,沒啥好說的。

查看隊列中的消息(只查看,不消費,看完之後消息還在):

rabbitmqadmin get queue=javaboy-queue

清空一個隊列中的消息:

rabbitmqadmin purge queue name=javaboy-queue

5. 命令一覽

表格字體有點小,大家在公衆號【江南一點雨】後臺回覆 rabbitmqadmin 獲取 Excel 文檔鏈接。

6. 小結

好啦,今天就和小夥伴們簡單介紹了一下 rabbitmqadmin,一個簡單的 Python 腳本,感興趣的小夥伴可以去試試哦~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章