本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon MQ for RabbitMQ 的外掛程式
Amazon MQ for RabbitMQ 支援 RabbitMQ 管理外掛程式
除了管理外掛程式,Amazon MQ for RabbitMQ 還支援下列外掛程式。
Shovel 外掛程式
Amazon MQ 受管代理程式支援 RabbitMQ shovel
Amazon MQ 受管 RabbitMQ 代理程式支援動態 shovel。動態 shovel 使用執行時間參數進行設定,並可經由用戶端連線以程式設計方式隨時啟動和停止。例如,使用 RabbitMQ 管理 API,您可以建立對下列API端點的PUT
請求,以設定動態鏟。在範例中,{vhost}
可由代理程式的虛擬主機名稱取代,而 {name}
可由新的動態 shovel 名稱取代。
/api/parameters/shovel/
{vhost}
/{name}
在要求主體中,您必須指定佇列或交換,但不能同時指定兩者。下面的這個範例在 src-queue
中指定的本機佇列與 dest-queue
中定義的遠端佇列之間設定動態 shovel。同樣地,您可使用 src-exchange
和 dest-exchange
參數來設定兩個交換之間的 shovel。
{ "value": { "src-protocol": "amqp091", "src-uri": "amqp://localhost", "src-queue": "
source-queue-name
", "dest-protocol": "amqp091", "dest-uri": "amqps://b-c8352341-ec91-4a78-ad9c-a43f23d325bb.mq.us-west-2.amazonaws.com:5671
", "dest-queue": "destination-queue-name
" } }
重要
如果 shovel 目的地是私有代理程式,則無法在佇列或交換之間設定 shovel。您只能在公有代理程式中的佇列或交換之間設定 shovel,或在私有代理程式中的來源與公有代理程式中的目的地之間設定 shovel。
如需使用動態 shovel 的詳細資訊,請參閱 RabbitMQ 動態 shovel 外掛程式
注意
Amazon MQ 不支援使用靜態 shovel。
聯合外掛程式
Amazon MQ 支援聯合交換和佇列。透過聯合,您可以在個別代理程式上的佇列、交換和消費者之間複寫訊息流程。聯合佇列和交換使用 point-to-point連結連接到其他代理程式中的對等。聯合交換時,預設會路由傳送訊息一次,聯合佇列可視消費者的需要多次移動訊息。
您可以使用聯合來允許下游代理程式從上游的交換或佇列中取用訊息。您可以使用 RabbitMQ Web 主控台或 管理 來啟用下游代理程式的聯合API。
重要
如果上游佇列或交換處於私有代理程式中,則無法設定聯合。您只能在公有代理程式中的佇列或交換之間,或者在公有代理程式中的上游佇列或交換與私有代理程式中的下游佇列或交換之間設定聯合。
例如,使用 管理 API,您可以執行下列動作來設定聯合。
-
設定一或多個上游,以定義與其他節點的聯合連線。您可以使用 RabbitMQ Web 主控台或 管理 來定義聯合連線API。使用 管理 API,您可以使用
/api/parameters/federation-upstream/%2f/
下列my-upstream
POST
請求內文來建立 請求。{"value":{"uri":"amqp://
server-name
","expires":3600000}} -
設定政策,讓您的佇列或交換變得聯合。您可以使用 RabbitMQ Web 主控台或 管理 來設定政策API。使用 管理 API,您可以使用
/api/policies/%2f/federate-me
下列POST
請求內文來建立 請求。{"pattern":"^amq\.", "definition":{"federation-upstream-set":"all"}, "apply-to":"exchanges"}
注意
要求主體假設伺服器上的交換會命名為以
amq
開頭。使用常規表達式^amq\.
,可確保所有名稱以 "amq" 開頭的交換已啟用聯合。RabbitMQ 伺服器上的交換可以不同的方式命名。
如需設定聯合外掛程式的詳細資訊,請參閱 RabbitMQ 聯合外掛程式
一致雜湊交換外掛程式
預設情況下,Amazon MQ for RabbitMQ 支援一致雜湊交換類型外掛程式。一致雜湊交換會根據從訊息路由索引鍵計算的雜湊值,將訊息路由傳送到佇列。假設有合理平均的路由索引鍵,一致雜湊交換可以在佇列之間合理地平均分配訊息。
對於繫結至一致雜湊交換的佇列,繫結金鑰是 number-as-a-string,可決定每個佇列的繫結權重。具較高繫結權數的佇列會從其繫結的一致雜湊交換接收分配比例較高的訊息。在一致雜湊交換拓撲中,發行者可以直接將訊息發佈至交換,但是消費者必須明確設定為取用特定佇列中的訊息。
如需一致的雜湊交換的詳細資訊,請參閱 GitHub 網站上的 RabbitMQ 一致的雜湊交換類型