流量治理規則
流量管理
流量管理的本質是根據既定的路由規則將請求分發到應用程式服務,如下圖所示
在
- 可以有多個路由規則,不同的路由規則具有優先順序。例如:Router(1) -> Router(2) -> … -> Router(n)
- 一個路由規則可以路由到多個不同的應用程式服務。例如:Router(2) 可以路由到 Service(1) 或 Service(2)
- 多個不同的路由規則可以路由到同一個應用程式服務。例如:Router(1) 和 Router(2) 都可以路由到 Service(2)
- 路由規則也可以不路由到任何應用程式服務。例如:Router(m) 未路由到任何 Service,所有命中 Router(m) 的請求都會導致錯誤,因為沒有對應的應用程式服務處理
- 應用程式服務可以是單一執行個體或應用程式叢集。
Dubbo Mesh 格式流量管理簡介
Dubbo 提供了一種支援 Mesh 方法的流量管理策略,可以輕鬆實現 A/B 測試、[金絲雀發布](./mesh-style/canary-deployment/)、藍綠部署 等能力。
Dubbo 將整個流量管理分為兩部分:VirtualService 和 DestinationRule。當 Consumer 收到請求時,它會根據 DubboRoute 和 [DubboRouteDetail](./mesh-style/virtualservice/#dubboroutedetail) 匹配到 DubboDestination 中的相應子網路,最後根據 DestinationRule 中的配置,通過 子網路 資訊中的標籤找到需要特定路由的 Provider 叢集。在
- 虛擬服務 主要處理入站流量轉發規則,並支援服務級別和方法級別的轉發。
- Dubbo 路由 主要解決服務級別分流的問題。同時,它還提供重試機制、逾時、故障注入、鏡像流量等功能。
- Dubbo 路由細節 主要解決服務中方法級別的分流問題。支援方法名稱、方法參數、參數數量、參數類型、標頭等多維度的分流能力。同時,它還支援方法級別的重試機制、逾時、故障注入、鏡像流量等功能。
- Dubbo 目的地 用於描述路由流量的目標地址,並支援主機、端口、子網等方法。
- 目標規則 主要處理目標地址規則,可以通過主機、子網等與提供者叢集關聯。同時,可以通過 流量策略 來實現負載平衡。
這種設計理念很好地解決了流量轉發與目標地址之間的耦合問題。不僅簡化了配置規則,有效避免了配置冗餘的問題,而且支援 虛擬服務 和 目標規則 的任意組合,可以靈活支援各種業務使用場景。
上次修改時間:2023 年 1 月 2 日:增強英文文件 (#1798) (95a9f4f6c1c)