請求路由

在 Dubbo-Admin 中根據請求條件進行路由

Dubbo 提供了動態創建條件路由的服務治理能力,無需重啟應用即可根據請求發起方和方法進行路由。

Dubbo 可以通過 XML 配置、註解配置和動態配置實現根據請求條件的動態路由。這裡我們主要介紹動態配置方法,其他配置方法請參考舊文檔 配置

開始之前

請確保 Dubbo-Admin 成功運行

背景資訊

在黑白名單、排除預發佈機器、只暴露部分機器、按環境隔離等業務場景下,需要在發起 RPC 調用前,通過路由規則過濾目標服務地址,並將過濾後的地址作為最終 RPC 調用的候選地址。Dubbo-Admin 提供了條件路由功能,可以幫助您配置路由規則以滿足業務場景。

步驟

條件路由

  1. 登錄 Dubbo-Admin 控制台
  2. 在左側導航窗格中,選擇服務治理 > 條件路由。
  3. 點擊「創建」按鈕,在「創建新路由規則」面板中填寫規則內容,然後點擊「保存」。

詳細規則

配置模板
---
scope: application/service
force: true
runtime: true
enabled: true
key: app-name/group+service+version
conditions:
   - application=app1 => address=*:20880
   - method=sayHello => address=*:20880

對於條件路由場景,您只需要明確以下問題即可知道如何編寫配置

  1. 要修改消費者應用的配置還是服務的配置。
    • 應用程式:scope: application, key: app-name(您也可以使用 services 指定某些服務)。
    • 服務:scope: service, key:group+service+version
  2. 當路由結果為空時,是否強制返回。
    • force=false:當路由結果為空時,降級標籤為空的提供者。
    • force=true:當路由結果為空時,將直接返回異常。
  3. 路由規則的優先級
    • priority=1:路由規則的優先級,用於排序,優先級越高,執行順序越前,可以留空,默認為 0。
  4. 此配置是否僅對特定實例生效。
    • 所有實例:addresses: ["0.0.0.0"]addresses: ["0.0.0.0:*"],取決於 side 值。
    • 指定實例:addresses: [實例地址列表]
  5. 要修改的條件規則。
    • => 前者是消費者匹配條件。所有參數與消費者的 URL 進行比較。當消費者符合匹配條件時,會對消費者執行後續的過濾規則。
    • => 後者是供應商地址列表的過濾條件。所有參數與供應商的 URL 進行比較,消費者最終只會取得過濾後的地址列表。
    • 如果匹配條件為空,表示適用於所有消費者,例如:=> host != 10.20.153.11
    • 如果過濾條件為空,則禁止訪問,例如:host = 10.20.153.10 =>

結果驗證

選擇與條件路由配置相關的應用程式來觸發呼叫驗證。


上次修改日期:2023 年 2 月 9 日:更新 docsy 至 0.6.0 (#2141) (20081578326)