流量治理
更新時間 2024-09-11 18:15:50
最近更新時間: 2024-09-11 18:15:50
分享文章
本章節介紹網關治理中的流量治理功能
標簽路由
標簽路由是將每個服務打上一個標簽,通過標簽將標簽相同的服務分為同一個分組,然后約束流量在同一個分組內流轉,以此實現灰度發布、金絲雀發布、藍綠發布等功能。
版本限制
| 框架 | 限制 | 詳情 |
|---|---|---|
| Spring Cloud | Spring Cloud Edgware及以上版本 | 客戶端:Feign、RestTemplate 負載均衡:Ribbon、LoadBalancer |
| Dubbo | 2.5.3~2.7.8 | 支持Alibaba Dubbo、Apache Dubbo |
| 注冊中心 | Nacos、Eureka、Zookeeper | -- |
| jdk版本 | 1.8+ | -- |
應用場景
A/B測試
在營銷活動中,經常會有A/B測試,A/B測試是為了測試不同的規則對業務的影響,所以一個應用會有多個版本同時運行,可以通過標簽的方式區分不同的版本,對不同版本的應用進行流量隔離,將特殊用戶的流量路由到特殊版本,從而實現A/B測試。


開通標簽路由
步驟1:應用設置標簽。
為云容器引擎集群應用設置標簽,為應用容器添加環境變量MSE_SERVICE_TAG=gray。
為ECS應用設置標簽,在啟動應用時,添加JVM啟動參數-Dctgcloud.service.tag=gray。
步驟2:在微服務治理中心控制臺創建標簽路由。
-
登錄微服務治理中心控制臺。
-
在左側導航欄選擇 微服務治理中心 ->網關治理。
-
在網關治理頁面單擊目標應用卡片。
-
在網關頁面左側導航欄選擇流量治理 - 標簽路由,查看服務標簽。

-
在標簽路由頁點擊流量分配,為標簽按比例分配流量。
-
在標簽路由頁的流量規則欄新增流量規則。

流量規則參數說明:
| 參數 | 說明 |
|---|---|
| 路由名稱 | 路由規則的名稱。 |
| 應用 | 所選的應用。 |
| 標簽 | 設置的標簽名。 |
| 應用實例 | 設置了該標簽的實例ip。 |
| 是否鏈路傳遞 | 代表開啟全鏈路流控。 |
| 框架類型 | Spring Cloud Dubbo。 |
| Path | SpringCloud為path路徑,Dubbo為接口。 |
| 條件模式 | 滿足一個條件,或者滿足所有條件。 |
| 條件列表 | 可以設置Header、Cookie、Parameter和Body Content四種參數類型。 |
| 是否開啟流量規則 | 流量規則開關。 |
離群摘除
在微服務場景中,當服務提供者的實例出現異常時,服務消費者無法感知到提供者出現異常,此時就可能出現異常調用。通過配置離群摘除功能可以實時監測下游實例的可用性,摘除異常實例,提升業務的可用性。
版本限制
| 框架 | 限制 | 詳情 |
|---|---|---|
| Spring Cloud | Spring Cloud Dalston及以上版本 | -- |
| Dubbo | 2.5.3+ | 支持Apache Dubbo 不支持Alibaba Dubbo |
| Jdk版本 | 1.8+ | -- |
開通離群摘除
- 登錄微服務治理中心控制臺。
- 在左側導航欄選擇 微服務治理中心 ->應用治理。
- 在應用治理頁面單擊目標應用卡片。
- 在應用頁面左側導航欄選擇流量治理 - 離群實例摘除,可查看離群實例摘除規則列表。
- 在創建離群實例摘除頁面配置相關參數,并單擊確認。


離群摘除規則參數說明:
| 參數 | 說明 |
|---|---|
| 策略名稱 | 離群摘除規則的名稱。 |
| 被調用服務所用框架 | Spring Cloud或Dubbo。 |
| 選擇生效應用 | 選擇生效應用后,該應用調用的異常應用實例會被摘除。 |
| 錯誤率下限 | 被調用的應用中某個應用實例的錯誤率高于設置的域值后,將摘除該實例。 默認值為50%。例如該實例在統計時間窗口內被調用10次,有6次調用失敗,錯誤率為60%,超過了配置的錯誤率域值(50%),則從應用中移除該實例。 |
| 異常類型 | 目前只支持網絡異常+業務異常(HTTP 5xx)。 |
| QPS下限 | QPS按照統計時間窗口進行計算,默認為10秒。 |
| 摘除實例比例上限 | 摘除的異常實例比例上限,即達到閾值后,不再摘除異常實例。 |
| 恢復檢測單位時間 | 發現實例異常后,檢測異常實例的單位時間(修改)。 |
| 未恢復累計次數上限 | 持續對異常實例進行檢測,檢測間隔隨檢測次數按恢復檢測單位時間線性增加,當達到設置的檢測次數上限后,會按最長時間間隔持續檢測異常實例是否恢復。 |
| 默認狀態 | 默認是否開啟離群摘除規則。 |