全部產品
Search
文件中心

Microservices Engine:配置標籤路由

更新時間:Aug 14, 2025

標籤路由通過給流量打標、給機器打標、增加路由能力,從而約束符合特徵流量只調用到對應標籤的節點上,實現按流量特徵與機器標籤路由的目的。標籤路由可以作為藍綠髮布、灰階發布等情境的能力基礎。

前提條件

使用限制

說明

該內容主要針對微服務治理中心,您的應用需要接入MSE服務治理中心。

標籤路由能力支援的Java版本及架構詳見微服務治理支援的Java架構

應用情境

多版本開發測試

多個版本並行開發時,需要為每個版本準備一套開發環境。如果版本較多,開發環境成本會非常大。流量隔離方案可以在多版本開發測試時大幅度降低資源成本。使用基於標籤路由的全鏈路流量隔離機制,可以將特定的流量路由到指定的開發環境。例如,在開發環境1中,為應用B(V1.1)和應用D(V1.1)建立Tag1標籤,並配置對應的路由規則。入口應用A調用B時,會判斷流量是否滿足路由規則。如果滿足,路由到開發環境1中應用B的V1.1版本;如果不滿足,路由到基準環境中的應用B的V1版本。應用C調用應用D時,同樣根據流量決定路由到應用D的V1版本或V1.1版本。

相同應用的多版本間流量隔離

如果一個應用有多個版本線上上同時運行,部署在不同環境中,例如日常環境和特殊環境。那麼可以使用標籤路由對不同環境中的不同版本進行流量隔離,將秒殺訂單流量或不同渠道訂單流量路由到特殊環境,將正常的流量路由到日常環境。即使特殊環境異常,本應進入特殊環境的流量也不會進入日常環境,從而不會影響日常環境的使用。

A/B Testing

線上有多個應用版本同時運行,期望對不同版本的應用進行A/B Testing。那麼可以使用標籤路由的全鏈路流量控制功能,將地區A的客戶流量路由到V1版本,地區B的客戶流量路由到V1.1版本。通過對不同版本的驗證,達到降低新產品或新特性的發布風險,為產品創新提供保障的目的。

在ACK中為應用接入MSE微服務治理並設定標籤

本文以spring-cloud-a為例,分別給應用打上tag1和tag2兩個標籤,將應用劃分為2個分組。如果請求符合您配置的特徵,會調用到您指定標籤的節點;如果沒有匹配上任何規則,則按照設定的流量比例調用到對應節點。

  1. 登入Container Service控制台

  2. 在左側導覽列,選擇叢集列表,然後單擊目的地組群名稱。

  3. 在左側導覽列,選擇工作負載 > 無狀態

  4. 單擊使用鏡像建立,分別建立兩個無狀態應用spring-cloud-a-tag1、spring-cloud-a-tag2。具體操作,請參見建立無狀態工作負載Deployment

    參數

    說明

    副本數量

    設定為1。

    類型

    選擇無狀態(Deployment)。

    鏡像名稱

    選擇您構建的鏡像即可。您也可以選擇預先構建好的鏡像registry.cn-hangzhou.aliyuncs.com/mse-governance-demo/spring-cloud-a:3.0.1

  5. 按照以下步驟將應用spring-cloud-a-tag1和spring-cloud-a-tag2接入MSE微服務治理,並設定標籤。

    1. 返回無狀態頁面,選擇命名空間,找到建立的應用(spring-cloud-a-tag1和spring-cloud-a-tag2)。在操作列單擊更多 > 查看Yaml

    2. 編輯 YAML對話方塊,分別為spring-cloud-a-tag1和spring-cloud-a-tag2在spec > template > metadata下添加以下Labels,接入MSE微服務治理。

      labels:
        msePilotAutoEnable: "on"
        msePilotCreateAppName: <your-app-name>
        alicloud.service.tag: <tag>
      說明
      • 將<your-app-name>替換為您在MSE微服務治理實際使用的應用程式名稱,即spring-cloud-a。

      • <tag>替換為tag1或tag2。

    3. 單擊更新

在MSE微服務治理中為應用建立標籤路由

  1. 登入MSE治理中心控制台,並在頂部功能表列選擇地區。

  2. 在左側導覽列,選擇治理中心 > 应用治理

  3. 應用列表頁面,選擇對應的微服務命名空間,搜尋在ACK建立的應用程式名稱spring-cloud-a,並單擊進入。

  4. 在左側導覽列,單擊流量治理,然後選擇標籤路由頁簽查看當前的標籤路由配置。

  5. 標籤路由列表右側單擊流量分配,設定各標籤的流量比例,然後單擊儲存

    image

  6. 單擊流量規則下方的添加。在建立標籤路由面板配置參數,然後單擊確定即可完成標籤路由的建立。

    image

    說明

    標籤路由優先採用流量規則裡的路由條件,如果滿足該流量規則,則會去該規則對應標籤的Pod,否則按照流量比例去對應標籤的Pod。

    參數

    說明

    路由名稱

    標籤路由規則名稱,例如test-springcloud。

    應用

    顯示應用程式名稱,例如spring-cloud-a。

    標籤

    顯示在ACK中為應用設定的標籤,例如tag2。

    應用執行個體

    顯示spring-cloud-a應用中設定了該標籤的應用執行個體的IP及連接埠。

    流量規則

    架構類型

    包含Spring CloudDubbo,根據應用實際架構選擇。

    • Spring Cloud:僅支援設定URL的Path,例如/getIp

    • Dubbo:支援選擇服務和介面。

    條件模式

    包含同時滿足下列條件滿足下列任一條件,根據實際需求選擇。

    條件列表

    • 架構類型Spring Cloud:可以分別設定ParameterCookieHeaderBody Content四種類型的參數。例如: 參數類型為Parameter設定name=xiaoming、參數類型為Cookie設定hello = "world" 或 "world2"

    • 架構類型Dubbo:需要設定參數值擷取運算式。

結果驗證

根據實際業務需求進行驗證。

  • 預設100%流量會按照規則,調用到tag1節點。

    image

  • 匹配規則的流量,會調用到對應標籤的節點。

    image

相關文檔

實現全鏈路灰階可參見全鏈路灰階