Dubbo提供動態創建條件路由的服務治理能力,可以在無需重啟應用的情況下,根據請求發起方、請求的方法條件路由,
Dubbo可以通過XML配置,注解配置,動態配置實作動態根據請求條件路由,這里主要介紹動態配置的方式,其他配置方式請參考舊檔案配置
開始之前
請確保成功運行Dubbo-Admin
背景資訊
在業務場景如黑白名單,排除預發布機,只暴露部分機器,分環境隔離等,需要路由規則在發起RPC呼叫前過濾目標服務器地址,過濾后的地址作為最終發起RPC呼叫的備選地址,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 官網:https://cn.dubbo.apache.org/zh/overview/tasks/traffic-management/traffic-routing/
歡迎在 https://github.com/apache/dubbo 給 Dubbo Star,
搜索關注官方微信公眾號:Apache Dubbo,了解更多業界最新動態,掌握大廠面試必備 Dubbo 技能
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/540504.html
標籤:其他
上一篇:【深度思考】如何優雅的校驗引數?
下一篇:教你用Java實作動態調色板
