全部產品
Search
文件中心

ApsaraMQ for RabbitMQ:名詞解釋

更新時間:Jun 30, 2024

本文主要對雲訊息佇列 RabbitMQ 版涉及的專有名詞及術語進行定義和解析,方便您更好地理解相關概念並使用雲訊息佇列 RabbitMQ 版

A

  • Alternate Exchange

    • 備份Exchange,簡稱AE,用於接收配置了備份Exchange的Exchange路由失敗的訊息。

  • Arguments

    • Queue的參數,可用於設定死信Exchange、訊息到期時間、死信Routing key等。

  • Auto Delete

    • 自動刪除屬性,對於設定了自動刪除的Exchange,如果綁定到該Exchange的最後一個Queue解除綁定,那麼該Exchange將會自動刪除。對於設定了自動刪除的Queue,如果訂閱該Queue的最後一個消費端取消訂閱後,那麼該Queue將會自動刪除。

B

  • Binding

    • 一套綁定規則,用於告訴Exchange訊息應該被儲存到哪個Queue。它的作用是把Exchange和Queue按照路由規則綁定起來。

C

  • Channel

    • 在用戶端的每個物理TCP串連裡,可建立多個Channel,每個Channel代表一個會話任務。具體資訊,請參見Connection和Channel

  • Connection

    • TCP串連,生產者或消費者與雲訊息佇列 RabbitMQ 版間的物理TCP串連。具體資訊,請參見Connection和Channel

E

  • Exchange

    • 生產者將訊息發送到Exchange,由Exchange將訊息路由到一個或多個Queue中。Exchange根據訊息的屬性或內容路由訊息。具體資訊,請參見Exchange

I

  • Internal

    • 內建類型,該類型的Exchange用於Exchange之間的綁定。

M

  • Message ID

    • Message ID(訊息標識符)是訊息的可選屬性,類型為short string。Message ID在業務上通常被設定為唯一,適用於追蹤和識別銷售單、工單等需要保證訊息唯一的情境。雲訊息佇列 RabbitMQ 版服務端不會對訊息進行等冪處理。如需實現訊息等冪,即如果訊息重試多次,消費端對該重複訊息消費多次與消費一次的結果是相同的,並且多次消費沒有對系統產生副作用,在為每條訊息設定唯一Message ID的基礎上,您還需要在雲訊息佇列 RabbitMQ 版的Consumer用戶端對訊息進行等冪處理,具體資訊,請參見訊息等冪

Q

  • Queue

    • 訊息佇列,每個訊息都會被投入到一個或多個Queue裡。

R

  • Routing Key

    • 生產者在向Exchange發送訊息時,需要指定一個Routing Key來設定該訊息的路由規則。 Routing Key需要與Exchange類型聯合使用才會生效。一般情況下,生產者在向Exchange發送訊息時,可以通過指定Routing Key來決定訊息被路由到哪個或哪些Queue。

S

  • 執行個體

    • 一個獨立的雲訊息佇列 RabbitMQ 版資源實體,包含Vhost、Exchange、Queue等基本的資源要素。

  • 執行個體限流

    • 雲訊息佇列 RabbitMQ 版執行個體的TPS流量峰值超過您所購買執行個體的TPS規格上限時,雲訊息佇列 RabbitMQ 版執行個體會被限流。

      限流後的行為如下:

      • 雲訊息佇列 RabbitMQ 版服務端會返回錯誤碼資訊。

      • 雲訊息佇列 RabbitMQ 版服務端關閉當前請求的Channel。代碼中可以捕獲異常重新開啟Channel。

      具體資訊,請參見執行個體限流最佳實務

  • 生產者

    • 訊息生產者,即投遞訊息的程式。

  • 死信Exchange

    • 用於路由死信訊息的Exchange。死信Exchange會根據死信Routing Key、Header屬性將死信訊息投遞至死信Queue。死信Exchange可以是任何一種常見類型的Exchange,例如Direct Exchange,具體資訊,請參見死信Exchange

  • 死信Routing Key

    • 死信訊息的路由規則。如果不設定死信訊息的Routing Key,則死信訊息的Routing Key預設為訊息本身的Routing Key。

  • 死信訊息

    • 被重新發送到死信Exchange的訊息。訊息變成死信訊息的可能原因如下:

      • requeue參數被設定為 false,消費者使用basic.rejectbasic.nack否定應答(NACK)訊息。

      • 訊息重試次數超過16次,訊息重試失敗。具體資訊,請參見訊息逾時和重試機制

      • 訊息到期,即訊息在Queue中存在的時間超過了設定的訊息存活時間。具體資訊,請參見訊息存活時間

  • 死信Queue

    • 死信Exchange綁定的Queue,用於儲存死信訊息。

V

  • Vhost

    • 虛擬機器主機(Virtual Host),用作邏輯隔離,分別管理各自的Exchange、Queue和Binding,使得應用安全地運行在不同的Vhost執行個體上,相互之間不會干擾。一個執行個體下可以有多個Vhost,一個Vhost裡面可以有若干個Exchange和Queue。生產者和消費者串連雲訊息佇列 RabbitMQ 版需要指定一個Vhost。

X

  • 消費者

    • 訊息消費者,即接收訊息的程式。

  • 訊息存活時間

    • 訊息在Queue中的有效期間。某條訊息在Queue中的留存時間超過配置的訊息存活時間時,則該訊息到期。訊息存活時間的值必須為非負整型數,單位為毫秒。例如,某條訊息的存活時間的值是1000,則代表該訊息最多會在Queue中存活1秒。具體資訊,請參見訊息存活時間

Y

  • 延時訊息

    • 生產者將訊息發送到雲訊息佇列 RabbitMQ 版服務端,但並不期望這條訊息立馬投遞,而是延遲一定時間後才投遞到消費者進行消費,該訊息即延時訊息。具體資訊,請參見延時訊息

  • 永久性

    • 在伺服器重啟之後Queue、Exchange以及相應Binding仍然存在的現象。