流量隔離

Dubbo-Admin 中的動態流量隔離

Dubbo 提供了動態流量隔離的服務管理功能,無需重新啟動應用程序即可動態隔離流量。

Dubbo 可以通過 XML 配置、註解配置和動態配置實現流量隔離。這裡我們主要介紹動態配置方法。有關其他配置方法,請參閱舊文檔 配置

開始之前

請確保已成功運行 Dubbo-Admin

背景資訊

如果一個應用程序的多個版本同時在線上運行,並且部署在不同的環境中,例如日常環境和特殊環境,則可以使用標籤路由將不同版本在不同環境中的流量隔離開來,並將限時搶購或來自不同渠道的訂單流量路由到特殊環境,將正常流量路由到日常環境。即使特殊環境異常,原本應該進入特殊環境的流量也不會進入日常環境,不會影響日常環境的使用。

步驟

標籤路由

  1. 登錄 Dubbo-Admin 控制台
  2. 在左側導航窗格中,選擇服務治理 > 標籤路由。
  3. 單擊“創建”按鈕,在“創建新的標籤規則”窗格中填寫規則內容,然後單擊“保存”。

詳細規則

配置模板
---
   force: false
   runtime: true
   enabled: true
   key: governance-tagrouter-provider
   tags:
     - name: tag1
       addresses: ["127.0.0.1:20880"]
     - name: tag2
       addresses: ["127.0.0.1:20881"]
  ...

對於流量隔離場景,您只需要弄清楚以下問題即可知道如何編寫配置

  1. 要修改服務所屬的提供者應用程序的配置。
    • 應用程序: scope: application, key: app-name (也可以使用 services 指定某些服務)。
  2. 當路由結果為空時,是否強制返回。
    • force=false:當路由結果為空時,降級標籤為空的提供者。
    • force=true:當路由結果為空時,將直接返回異常。
  3. 路由規則的優先級
    • 優先級 (priority)=1:路由規則的優先級,用於排序,優先級越高,執行順序越靠前,可以留空,默認為 0。
  4. 此配置是否僅對特定實例生效。
    • 所有實例:addresses: ["0.0.0.0"]addresses: ["0.0.0.0:*"],取決於 side 值。
    • 指定實例:addresses: [實例地址列表]
  5. 要修改的標籤名稱。

結果驗證

選擇與流量隔離配置相關的應用程式來觸發呼叫驗證。


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