流量灰度
在 Dubbo-Admin 中配置標籤路由規則以實現灰度發布
Dubbo 提供流量灰度服務管理功能,可以配置標籤路由規則和條件路由,實現無需重新啟動應用程式即可灰度發布。
Dubbo 可以通過 XML 配置、註釋配置和動態配置實現流量灰度。這裡我們主要介紹動態配置方法。其他配置方法請參考舊文件 配置
開始之前
請確保已成功運行 Dubbo-Admin
背景資訊
產品開發過程中會遇到需求變更和版本迭代的場景。為了兼顧需求變更和系統穩定性,發布應該盡可能平滑,受影響人數由小到大,出現問題立即回滾。Dubbo-Admin 提供動態流量灰度能力,可以幫助您對新服務進行投標,平滑發布服務,提高服務穩定性和可用性。
步驟
條件路由
- 登入 Dubbo-Admin 控制台
- 在左側導航面板中,選擇服務治理 > 條件路由。
- 點擊「新增」按鈕,在「新增路由規則」面板中填寫規則內容,然後點擊「儲存」。
詳細規則
配置範本
---
scope: application/service
force: true
runtime: true
enabled: true
key: app-name/group+service+version
conditions:
- application=app1 => address=*:20880
- method=sayHello => address=*:20880
對於流量灰度場景,您只需要釐清以下問題即可知道如何編寫配置
- 要修改消費者應用程式的配置還是服務的配置。
- 應用程式:
scope: application, key: app-name
(您也可以使用services
指定特定服務)。 - 服務:
scope: service, key:group+service+version
。
- 應用程式:
- 當路由結果為空時,是否強制返回。
- force=false:當路由結果為空時,降級到標籤為空的供應商。
- force=true:當路由結果為空時,將直接返回異常。
- 路由規則的優先順序
- priority=1:路由規則的優先級,用於排序,優先級越高,執行順序越前,可以留空,默認為 0。
- 設定是否僅對特定實例生效。
- 所有實例:
addresses: ["0.0.0.0"]
或addresses: ["0.0.0.0:*"]
,取決於 side 值。 - 指定實例:
addresses: [實例地址列表]
。
- 所有實例:
- 要修改的條件規則。
- => 前面是消費者匹配條件。所有參數都與消費者的 URL 進行比較。當消費者符合匹配條件時,則對該消費者執行後續的過濾規則。
- => 後面是提供者地址列表的過濾條件。所有參數都與提供者的 URL 進行比較,消費者最終只會獲得過濾後的地址列表。
- 如果匹配條件為空,表示適用於所有消費者,例如: => host != 10.20.153.11
- 如果過濾條件為空,則禁止訪問,例如: host = 10.20.153.10 =>
標籤路由
- 登入 Dubbo-Admin 控制台
- 在左側導覽窗格中,選擇「服務治理」>「標籤路由」。
- 點擊「建立」按鈕,在「建立新的標籤規則」窗格中填寫規則內容,然後點擊「儲存」。
詳細規則
配置範本
---
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"]
...
對於流量灰度場景,您只需要釐清以下問題即可知道如何編寫配置
- 修改服務所屬的提供者應用程式的設定。
- 應用程式:
scope: application, key: app-name
(您也可以使用services
指定特定服務)。
- 應用程式:
- 當路由結果為空時,是否強制返回。
- force=false:當路由結果為空時,降級到標籤為空的供應商。
- force=true:當路由結果為空時,將直接返回異常。
- 路由規則的優先順序
- priority=1:路由規則的優先級,用於排序,優先級越高,執行順序越前,可以留空,默認為 0。
- 設定是否僅對特定實例生效。
- 所有實例:
addresses: ["0.0.0.0"]
或addresses: ["0.0.0.0:*"]
,取決於 side 值。 - 指定實例:
addresses: [實例地址列表]
。
- 所有實例:
- 要修改的標籤名稱。
結果驗證
選擇與流量灰度配置相關的應用程式以觸發呼叫驗證。
最後修改日期:2023 年 2 月 9 日: 更新 docsy 至 0.6.0 (#2141) (20081578326)