全部產品
Search
文件中心

ApsaraMQ for RabbitMQ:Exchange管理

更新時間:Dec 27, 2024

Producer將訊息發送到Exchange,由Exchange將訊息路由到一個或多個Queue中(或者丟棄)。Exchange根據Routing Key將訊息路由到Queue。不同類型的Exchange的路由規則不同。本文介紹如何在雲訊息佇列 RabbitMQ 版控制台建立Exchange、查看統計資料、綁定Queue、綁定Exchange、被Exchange綁定以及發送訊息。

建立Exchange

  1. 登入雲訊息佇列 RabbitMQ 版控制台,然後在左側導覽列選擇实例列表

  2. 实例列表頁面的頂部功能表列選擇地區,然後在執行個體列表中,單擊目標執行個體名稱。

  3. 在左側導覽列,單擊Exchange 列表

  4. Exchange 列表頁面,在当前 Vhost右側的切换下拉式清單中,選擇Vhost,然後單擊创建 Exchange

  5. 创建 Exchange面板,輸入Exchange名稱,選擇Exchange类型,設定是否為Internal類型,然後單擊確定

    參數

    描述

    Exchange 名称

    Exchange名稱。以amq.開頭的為保留欄位,因此不能使用。例如:amq.test。

    类型

    Exchange類型。取值:

    • direct:該類型的路由規則會將訊息路由到Routing Key完全符合的Queue中。

    • topic:該類型與direct類型相似。Topic Exchange路由規則沒有Direct Exchange那麼嚴格,支援模糊比對和多條件匹配,即該類型Exchange使用Routing Key模式比對和字串比較的方式將訊息路由至綁定的Queue中。

    • fanout:該類型的路由規則非常簡單,會把所有發送到該Exchange的訊息路由到所有與它綁定的Queue中,相當於廣播功能。

    • headers:該類型與direct類型相似。Headers Exchange使用Headers屬性代替Routing Key進行路由匹配,在綁定Headers Exchange和Queue時,設定綁定屬性的索引值對;在向Headers Exchange發送訊息時,設定訊息的Headers屬性索引值對,使用訊息Headers屬性索引值對和綁定屬性索引值對比較的方式將訊息路由至綁定的Queue。

    • x-delayed-message:通過聲明該類Exchange,您可以自訂訊息的Header屬性x-delay來指定訊息延時投遞的時間段,單位為毫秒。訊息將在x-delay中定義的時間段後,根據路由規則被投遞到對應的Queue。路由規則取決於x-delayed-type中指定的Exchange路由類型。

    • x-consistent-hash:x-consistent-hash Exchange支援將Routing Key或Header值進行Hash計算,使用一致性雜湊演算法將訊息路由到不同的Queue上。

    x-delayed-type

    當Exchange類型為x-delayed-message時,需要配置此參數,以指定Exchange的路由類型。

    雜湊取值

    當Exchange類型為x-consistent-hash時,需要配置此參數,以指定Hash計算的輸入值為哪種類型。取值如下:

    • RoutingKey

    • Header 值:使用Header方式作為Hash計算輸入值時,您需要定義hash-header參數的取值。

    hash-header

    當Exchange類型為x-consistent-hash雜湊取值Header 值時,需要配置此參數,作為指定Hash計算的輸入值。

    Internal

    是否為Internal類型,預設值為。取值:

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

    • :非內建類型,用於Exchange和Queue之間的綁定。

查看統計資料

您可以查看各種指標資料,協助您及時發現和定位問題。

  1. Exchange 列表頁面,選擇指定Exchange,在其操作列單擊详情

  2. Exchange 详情頁面單擊监控指标Dashboard頁簽。

    執行個體類型不同,統計資料不同。具體如下:

    • 企業版和鉑金版:支援查看基於阿里雲ARMS Prometheus監控服務和Grafana的指標資訊。關於Dashboard詳細資料和指標資訊,請參見Dashboard

    • 普通版/專業版:通過CloudMonitor提供指標監控資料。關於CloudMonitor的詳細資料和指標資訊,請參見監控指標

      說明

      雲訊息佇列 RabbitMQ 版不再支援開通新的普通版執行個體,此處指存量的普通版執行個體。

綁定Queue

為Exchange綁定Queue,從而告訴Exchange訊息應該被路由到哪些Queue中。

  1. Exchange 列表頁面,選擇指定Exchange,在其操作列單擊绑定信息

  2. Exchange 详情頁面的绑定关系頁簽,單擊添加绑定

  3. 添加绑定面板,選擇绑定目标类型Queue,選擇绑定目标,設定Routing Key,然後單擊確定

    說明
    • 若綁定的Exchange的類型為x-consistent-hash時,Routing Key表示綁定的Queue的權重,只能設定為整數,取值範圍為[1~20]。

    • 當存在重複綁定時,只有第一個符合要求的綁定關係生效。

    • 若需要修改已綁定Queue的權重,請先刪除已有的綁定關係再重新添加綁定。

    添加綁定

綁定Exchange

為某個Exchange綁定另一個Exchange,從而讓訊息根據路由規則從被綁定的Exchange轉寄到該Exchange。

  1. Exchange 列表頁面,選擇指定Exchange,在其操作列單擊绑定信息

  2. Exchange 详情頁面的绑定关系頁簽,單擊添加绑定

  3. 添加绑定面板,選擇绑定目标类型Exchange,選擇绑定目标,設定Routing Key,單擊確定

    添加Exchange綁定

被Exchange綁定

讓某個Exchange被另一個Exchange綁定,從而讓訊息根據路由規則從該Exchange轉寄到另一個Exchange。

  1. Exchange 列表頁面,選擇指定Exchange,在其操作列單擊详情

  2. Exchange 详情頁面,選擇被绑定关系頁簽,然後單擊添加被绑定

  3. 添加被绑定面板,選擇源Exchange,在Routing Key文字框輸入Routing Key,绑定目标类型預設為Exchange,目标Exchange預設為此Exchange,單擊確定

    添加被綁定

發送訊息

為Exchange添加綁定或被綁定關係後,可直接在控制台發送訊息,將訊息從Exchange發送到綁定的Queue中,或從被綁定的Exchange發送到源Exchange中。

  1. Exchange 列表頁面,選擇指定Exchange,在其操作列單擊详情

  2. Exchange 详情頁面,選擇绑定关系被绑定关系頁簽。

  3. 在綁定關係或被綁定關係列表中,選擇指定的綁定關係,在其操作列,單擊发送消息

  4. 在彈出的发送消息面板中輸入messageIdmessageBody,然後單擊确定

刪除Exchange

警告
  • 刪除指定Exchange後,生產者將無法將訊息發送到該Exchange,也無法由當前Exchange路由到一個或多個Queue中,請您謹慎執行。

  • headers類型的Exchange不支援刪除。

  • Vhost下的3個內建Exchange(amq.direct、amq.topic和amq.fanout)不支援刪除。

  1. Exchange 列表頁面,單擊指定Exchange,在Exchange詳情頁面的右上方單擊删除

  2. 提示對話方塊,認真閱讀提示資訊,單擊確認

相關文檔

更多與Exchange相關的資訊,請參見Exchange