RabbitMQ 管理頁面該如何使用

@[toc] RabbitMQ 的 web 管理頁面相信很多小夥伴都用過,隨便點一下估計也都知道啥意思,不過本着精益求精的思想,松哥還是想和大家捋一捋這個管理頁面的各個細節。

1. 概覽

首先,這個 Web 管理頁面大概就像下圖這樣:

首先一共有六個選項卡:

  1. Overview:這裏可以概覽 RabbitMQ 的整體情況,如果是集羣,也可以查看集羣中各個節點的情況。包括 RabbitMQ 的端口映射信息等,都可以在這個選項卡中查看。
  2. Connections:這個選項卡中是連接上 RabbitMQ 的生產者和消費者的情況。
  3. Channels:這裏展示的是“通道”信息,關於“通道”和“連接”的關係,松哥在後文再和大家詳細介紹。
  4. Exchange:這裏展示所有的交換機信息。
  5. Queue:這裏展示所有的隊列信息。
  6. Admin:這裏展示所有的用戶信息。

右上角是頁面刷新的時間,默認是 5 秒刷新一次,展示的是所有的 Virtual host。

這是整個管理頁面的一個大致情況,接下來我們來逐個介紹。

2. Overview

Overview 中分了如下一些功能模塊:

分別是:

Totals:

Totals 裏面有 準備消費的消息數、待確認的消息數、消息總數以及消息的各種處理速率(發送速率、確認速率、寫入硬盤速率等等)。

Nodes:

Nodes 其實就是支撐 RabbitMQ 運行的一些機器,相當於集羣的節點。

點擊每個節點,可以查看節點的詳細信息。

Churn statistics:

這個不好翻譯,裏邊展示的是 Connection、Channel 以及 Queue 的創建/關閉速率。

Ports and contexts:

這個裏邊展示了端口的映射信息以及 Web 的上下文信息。

  • 5672 是 RabbitMQ 通信端口。
  • 15672 是 Web 管理頁面端口。
  • 25672 是集羣通信端口。

Export definitions && Import definitions:

最後面這兩個可以導入導出當前實例的一些配置信息:

3. Connections

這裏主要展示的是當前連接上 RabbitMQ 的信息,無論是消息生產者還是消息消費者,只要連接上來了這裏都會顯示出來。

注意協議中的 AMQP 0-9-1 指的是 AMQP 協議的版本號。

其他屬性含義如下:

  • User name:當前連接使用的用戶名。
  • State:當前連接的狀態,running 表示運行中;idle 表示空閒。
  • SSL/TLS:表示是否使用 ssl 進行連接。
  • Channels:當前連接創建的通道總數。
  • From client:每秒發出的數據包。
  • To client:每秒收到的數據包。

點擊連接名稱可以查看每一個連接的詳情。

在詳情中可以查看每一個連接的通道數以及其他詳細信息,也可以強制關閉一個連接。

4. Channels

這個地方展示的是通道的信息:

那麼什麼是通道呢?

一個連接(IP)可以有多個通道,如上圖,一共是兩個連接,但是一共有 12 個通道。

一個連接可以有多個通道,這個多個通道通過多線程實現,一般情況下,我們在通道中創建隊列、交換機等。

生產者的通道一般會立馬關閉;消費者是一直監聽的,通道幾乎是會一直存在。

上面各項參數含義分別如下:

  • Channel:通道名稱。
  • User name:該通道登錄使用的用戶名。
  • Model:通道確認模式,C 表示 confirm;T 表示事務。
  • State:通道當前的狀態,running 表示運行中;idle 表示空閒。
  • Unconfirmed:待確認的消息總數。
  • Prefetch:Prefetch 表示每個消費者最大的能承受的未確認消息數目,簡單來說就是用來指定一個消費者一次可以從 RabbitMQ 中獲取多少條消息並緩存在消費者中,一旦消費者的緩衝區滿了,RabbitMQ 將會停止投遞新的消息到該消費者中直到它發出有消息被 ack 了。總的來說,消費者負責不斷處理消息,不斷 ack,然後只要 unAcked 數少於 prefetch * consumer 數目,RabbitMQ 就不斷將消息投遞過去。
  • Unacker:待 ack 的消息總數。
  • publish:消息生產者發送消息的速率。
  • confirm:消息生產者確認消息的速率。
  • unroutable (drop):表示未被接收,且已經刪除了的消息。
  • deliver/get:消息消費者獲取消息的速率。
  • ack:消息消費者 ack 消息的速率。

5. Exchange

這個地方展示交換機信息:

這裏會展示交換機的各種信息。

Type 表示交換機的類型。

Features 有兩個取值 D 和 I。

D 表示交換機持久化,將交換機的屬性在服務器內部保存,當 MQ 的服務器發生意外或關閉之後,重啓 RabbitMQ 時不需要重新手動或執行代碼去建立交換機,交換機會自動建立,相當於一直存在。

I 表示這個交換機不可以被消息生產者用來推送消息,僅用來進行交換機和交換機之間的綁定。

Message rate in 表示消息進入的速率。 Message rate out 表示消息出去的速率。

點擊下方的 Add a new exchange 可以創建一個新的交換機。

6. Queue

這個選項卡就是用來展示消息隊列的:

各項含義如下:

  • Name:表示消息隊列名稱。
  • Type:表示消息隊列的類型,除了上圖的 classic,另外還有一種消息類型是 Quorum。兩個區別如下圖:

  • Features:表示消息隊列的特性,D 表示消息隊列持久化。
  • State:表示當前隊列的狀態,running 表示運行中;idle 表示空閒。
  • Ready:表示待消費的消息總數。
  • Unacked:表示待應答的消息總數。
  • Total:表示消息總數 Ready+Unacked。
  • incoming:表示消息進入的速率。
  • deliver/get:表示獲取消息的速率。
  • ack:表示消息應答的速率。

點擊下方的 Add a new queue 可以添加一個新的消息隊列。

點擊每一個消息隊列的名稱,可以進入到消息隊列中。進入到消息隊列後,可以完成對消息隊列的進一步操作,例如:

  • 將消息隊列和某一個交換機進行綁定。
  • 發送消息。
  • 獲取一條消息。
  • 移動一條消息(需要插件的支持)。
  • 刪除消息隊列。
  • 清空消息隊列中的消息。
  • ...

如下圖:

7. Admin

這裏是做一些用戶管理操作,如下圖:

各項屬性含義如下:

  • Name:表示用戶名稱。
  • Tags:表示角色標籤,只能選取一個。
  • Can access virtual hosts:表示允許進入的虛擬主機。
  • Has password:表示這個用戶是否設置了密碼。

常見的兩個操作時管理用戶和虛擬主機。

點擊下方的 Add a user 可以添加一個新的用戶,添加用戶的時候需要給用戶設置 Tags,其實就是用戶角色,如下:

  • none: 不能訪問 management plugin

  • management: 用戶可以通過 AMQP 做的任何事 列出自己可以通過 AMQP 登入的 virtual hosts 查看自己的 virtual hosts 中的 queues, exchanges 和 bindings 查看和關閉自己的 channels 和 connections 查看有關自己的 virtual hosts 的“全局”的統計信息,包含其他用戶在這些 virtual hosts 中的活動

  • policymaker: management 可以做的任何事 查看、創建和刪除自己的 virtual hosts 所屬的 policies 和 parameters

  • monitoring: management 可以做的任何事 列出所有 virtual hosts,包括他們不能登錄的 virtual hosts 查看其他用戶的 connections 和 channels 查看節點級別的數據如 clustering 和 memory 使用情況 查看真正的關於所有 virtual hosts 的全局的統計信息

  • administrator: policymaker 和 monitoring 可以做的任何事 創建和刪除 virtual hosts 查看、創建和刪除 users 查看創建和刪除 permissions 關閉其他用戶的 connections

  • impersonator(模擬者) 模擬者,無法登錄管理控制檯。

另外,這裏也可以進行虛擬主機 virtual host 的操作,不過關於虛擬主機我打算另外寫一篇文章和大家詳聊,這裏就先不展開啦。

8. 小結

好啦,今天算是一篇入門文章,和大家簡單聊一聊 RabbitMQ 的 web 管理頁面展示的一些信息。

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