本文主要對雲訊息佇列 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。
死信訊息
死信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仍然存在的現象。