全部產品
Search
文件中心

Microservices Engine:如何通過標籤路由做任務灰階

更新時間:Jul 31, 2025

您可以使用標籤路由的方式實現任務的灰階調度,通過指定標籤來指定每個任務調度到哪個label的Executor上。本文將介紹標籤路由的架構原理、任務灰階的最佳實務和標籤路由配置步驟詳情。

基於標籤路由的架構原理

任務調度XXL-JOB版支援基於label的路由策略,在Executor向Server心跳彙報時,可以附加當前Executor的label資訊,每個任務通過指定標籤來配置標籤路由,指定每個任務調度到哪個label的Executor上。

任務灰階最佳實務

如何做任務灰階

比如我們想灰階userId=2xx開頭的資料,我們可以複製一個任務,比如一個叫jobA-base,一個叫jobA-gray。分別給兩個任務配置任務參數,jobA-base的任務參數是userId=-2xx,jobA-gray的任務參數是userId=2xx。jobA-gray執行任務的時候,拿到任務參數,只會去處理userId=2xx開頭的資料,jobA-base執行任務的時候去處理userId不等於2xx開頭的資料。

如何進行全鏈路灰階

通過標籤路由可以做到單跳灰階,即可以把灰階任務調度到label=gray的機器上,如果該任務還需要調用下遊的微服務或訊息等服務,並且也希望調用灰階的節點,則可以使用MSE微服務治理把所有服務加入到灰階泳道裡,會自動進行全鏈路的灰階。

標籤路由配置步驟

步驟一:使用者側節點如何配置label

通過SDK外掛程式增強(需要修改代碼)

  1. 在pom檔案中添加以下依賴,並將其置於xxl-job-core之上,具體版本號碼詳情,請參見外掛程式版本說明

    <dependency>
      <groupId>com.aliyun.schedulerx</groupId>
      <artifactId>schedulerx3-plugin-xxljob</artifactId>
      <version>${最新版本號碼}</version>
    </dependency>
  2. 應用程式啟動時,添加jvm參數-Dxxl.job.executor.label來設定標籤。例如:通過如下樣本命令啟動配置標籤。

    java -Dxxl.job.admin.addresses=http://xxljob-xxxx -Dxxl.job.executor.appname=app1 -Dxxl.job.accessToken=xxx -Dxxl.job.executor.label=gray app.jar

通過MSE服務治理Agent增強(不需要修改代碼)

  1. 按應用的部署情況,完成MSE服務治理Agent接入,請參見應用接入

    重要

    要求Agent版本為 4.4.0及以上。

  2. 按應用的部署情況,建立部署灰階應用叢集,並建立全鏈路灰階泳道組,請參見全鏈路灰階

步驟二:驗證接入成功

在左側導覽列的應用管理頁面,查看執行器數量,可以看到接入的機器的標籤,代表接入成功。

步驟三:配置標籤路由

在左側導覽列的任務管理頁面,單擊目標任務操作列下更多 > 指定機器指定類型選擇標籤,則該任務只會運行在指定的標籤上。