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: 當路由結果為空,降級請求tag為空的提供者,
- force=true: 當路由結果為空,直接回傳例外,
- 路由規則的優先級
- priority=1: 路由規則的優先級,用于排序,優先級越大越靠前執行,可不填,預設為 0,
- 配置是否只對某幾個特定實體生效,
- 所有實體:
addresses: ["0.0.0.0"]或addresses: ["0.0.0.0:*"]具體由side值決定, - 指定實體:
addersses[實體地址串列],
- 所有實體:
- 要修改的條件規則,
- => 之前的為消費者匹配條件,所有引數和消費者的 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: 當路由結果為空,降級請求tag為空的提供者,
- force=true: 當路由結果為空,直接回傳例外,
- 路由規則的優先級
- priority=1: 路由規則的優先級,用于排序,優先級越大越靠前執行,可不填,預設為 0,
- 配置是否只對某幾個特定實體生效,
- 所有實體:
addresses: ["0.0.0.0"]或addresses: ["0.0.0.0:*"]具體由side值決定, - 指定實體:
addersses[實體地址串列],
- 所有實體:
- 要修改的標簽名,
結果驗證
選擇和流量灰度配置相關的應用,觸發該呼叫驗證,
原文首于 Dubbo 官網:https://cn.dubbo.apache.org/zh/overview/tasks/traffic-management/traffic-gray/
歡迎在 https://github.com/apache/dubbo 給 Dubbo Star,
搜索關注官方微信公眾號:Apache Dubbo,了解更多業界最新動態,掌握大廠面試必備 Dubbo 技能
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/540434.html
標籤:Java
上一篇:redis—安裝以及可視化
