如何在我的 Amazon MQ 代理程式上設定 RabbitMQ Shovel 外掛程式?

2 分的閱讀內容
0

我想使用 RabbitMQ Shovel 外掛程式將訊息從內部部署代理程式移動到 Amazon MQ for RabbitMQ 代理程式。如何設定我的 Amazon MQ for RabbitMQ 代理程式以使用 RabbitMQ Shovel 外掛程式?

簡短描述

要在 Amazon MQ for RabbitMQ 代理程式上設定 RabbitMQ Shovel 外掛程式,您必須建立一個動態 Shovel

若要為 Amazon MQ for RabbitMQ 代理程式建立動態 Shovel,您可以使用以下任一方法:

解決方案

注意:以下程序需要兩個代理程式:上遊代理程式 (內部部署或基於雲端) 和下遊代理程式 (Amazon MQ for RabbitMQ 代理程式)。可以在下遊或上遊代理程式上設定動態 Shovel。此範例程序顯示如何在下遊代理程式上建立動態 Shovel。

使用 RabbitMQ Web 主控台在下遊代理程式上建立動態 Shovel

**重要提示:**請確保為在建立 Shovel 的代理程式中不存在的佇列指定統一資源識別符 (URI)。

1.    開啟 Amazon MQ 主控台

2.    在左側導覽窗格中,選擇代理程式

3.    在名稱欄中,選擇下遊代理程式的名稱。

4.    在連線窗格中,選擇 RabbitMQ Web 主控台下列出的 URL。下遊代理程式的 RabbitMQ Web 主控台登入頁面開啟。

5.    輸入代理程式的使用者名稱密碼。然後,選擇登入以登入 RabbitMQ Web 主控台。

6.    在 RabbitMQ Web 主控台中,選擇管理索引標籤。然後,在右側導覽窗格中,選擇 Shovel 管理

7.    選擇建立新的 Shovel

8.    對於名稱,輸入您的 Shovel 的名稱。

9.    對於來源,請從下拉式清單中選擇 AMQP 0.9.1。然後,執行以下動作:
URI 右側的下拉式清單中,選擇佇列
佇列下面的文字方塊中,輸入上遊代理程式的來源佇列的名稱。
對於 URI,刪除預設的 amqp:// 文字,然後按以下格式輸入上遊代理程式的 URI:

amqps://$UPSTREAM_BROKER_USER:$UPSTREAM_BROKER_PASSWORD@$UPSTREAM_BROKER_ENDPOINT:5671

10.    對於目的地,從下拉式清單中選擇 AMQP 0.9.1。然後,執行以下動作:
URI 右側的下拉式清單中,選擇佇列
佇列下面的文字方塊中,輸入下遊代理程式的目的地佇列的名稱。
對於 URI,保留預設的 amqp:// 文字,並按以下格式輸入下遊代理程式的 URI:

amqp://$DOWNSTREAM_BROKER_USER:$DOWNSTREAM_BROKER_PASSWORD@$DOWNSTREAM_BROKER_ENDPOINT:5671

11.    選擇新增 Shovel

**注意:**如果來源佇列和目的地佇列尚不存在,RabbitMQ 會自動建立它們。

使用 RabbitMQ 管理命令列工具在下遊代理程式上建立動態 Shovel

**重要提示:**請確保為在建立 Shovel 的代理程式中不存在的佇列指定統一資源識別符 (URI)。

執行下列 curl 命令:

curl -u $SHOVEL_BROKER_USER:$SHOVEL_BROKER_PASSWORD \
-X PUT https://$SHOVEL_BROKER_ENDPOINT/api/parameters/shovel/%2f/rmq-lab-shovel \
-H "content-type: application/json" \
-d '{"value": {"src-protocol": "amqp091","src-uri": "amqps://$UPSTREAM_BROKER_USER:$UPSTREAM_BROKER_PASSWORD@$UPSTREAM_BROKER_ENDPOINT:5671","src-queue": "shovel-demo-src-queue","dest-protocol": "amqp091","dest-uri": "amqps://$DOWNSTREAM_BROKER_USER:$DOWNSTREAM_BROKER_PASSWORD@$DOWNSTREAM_BROKER_ENDPOINT:5671","dest-queue": "shovel-demo-dest-queue"}}'

重要提示:下遊代理程式的憑證取代 $SHOVEL_BROKER_USER$SHOVEL_BROKER_PASSWORD。將 $SHOVEL_BROKER_ENDPOINT 取代為下遊代理程式的端點。以上遊代理程式的憑證取代 $UPSTREAM_BROKER_USER$UPSTREAM_BROKER_PASSWORD。以上遊代理程式的端點取代 $UPSTREAM_BROKER_ENDPOINT。以下遊代理程式的憑證取代 $DOWNTREAM_BROKER_USER$DOWNTREAM_BROKER_PASSWORD。以下遊代理程式的端點取代 $DOWNTREAM_BROKER_ENDPOINT。以上游代理程式中的來源佇列名稱取代 $SOURCE_QUEUE_NAME。以下游代理程式中的目的地佇列名稱取代 $DESTINATION_QUEUE_NAME

測試設定

向上遊代理程式的來源佇列傳送測試訊息

1.    開啟上遊代理程式的 RabbitMQ Web 主控台。

**注意:**有關如何存取 RabbitMQ Web 主控台的詳細資訊,請參閲 RabbitMQ 文件中的管理外掛程式

2.    選擇佇列索引標籤。然後,選擇來源佇列的名稱。

3.    在左側導覽窗格中,選擇發佈訊息。此時將開啟發佈訊息部分。

4.    在承載文字方塊中,輸入測試訊息。

注意:可以將標題屬性文字方塊留空。

5.    選擇發佈訊息按鈕。測試訊息將傳送到來源佇列。如果您的動態 Shovel 設定正確,則該訊息也會被 Shovel 取用並傳送至下遊代理程式的目的地佇列。

驗證下遊代理程式的目的地佇列是否收到測試訊息

1.    開啟下遊代理程式的 RabbitMQ Web 主控台。有關説明,請參閲本文的使用 RabbitMQ Web 主控台在下遊代理程式上建立動態 Shovel 部分的步驟 1-5。

2.    選擇佇列索引標籤。然後,選擇目的地佇列的名稱。

3.    在左側導覽窗格中,選擇取得訊息。這將開啟取得訊息部分。

4.    選擇取得訊息按鈕。如果動態 Shovel 設定正確,則傳送到來源佇列的測試訊息將顯示為承載值。


相關資訊

將訊息驅動的應用程式遷移到 Amazon MQ for RabbitMQ

如何在我的 Amazon MQ 代理程式上設定 RabbitMQ 聯合身分外掛程式?

Shovel (Amazon MQ 研討會)

聯合身分 (Amazon MQ 研討會)

AWS 官方
AWS 官方已更新 2 年前