流量灰度

在 Dubbo-Admin 中配置標籤路由規則以實現灰度發布

Dubbo 提供流量灰度服務管理功能,可以配置標籤路由規則和條件路由,實現無需重新啟動應用程式即可灰度發布。

Dubbo 可以通過 XML 配置、註釋配置和動態配置實現流量灰度。這裡我們主要介紹動態配置方法。其他配置方法請參考舊文件 配置

開始之前

請確保已成功運行 Dubbo-Admin

背景資訊

產品開發過程中會遇到需求變更和版本迭代的場景。為了兼顧需求變更和系統穩定性,發布應該盡可能平滑,受影響人數由小到大,出現問題立即回滾。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 =>

標籤路由

  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)