すべてのプロダクト
Search
ドキュメントセンター

Microservices Engine:ラベルベースのルーティングを使用したカナリアジョブスケジューリングの実行

最終更新日:Nov 09, 2025

ラベルベースのルーティングを使用して、カナリアジョブのスケジューリングを実行できます。このメソッドは、指定されたラベルを持つジョブが、同じラベルを持つエグゼキュータにスケジュールされることを保証します。このトピックでは、ラベルベースのルーティングのアーキテクチャ、カナリアジョブスケジューリングのベストプラクティス、およびラベルベースのルーティングを設定する手順について説明します。

ラベルベースのルーティングのアーキテクチャ

XXL-JOB は、ラベルベースのルーティングポリシーをサポートしています。エグゼキュータがサーバーにハートビートを送信するとき、そのラベル情報が含まれます。ラベルを指定することで、各ジョブに対してラベルベースのルーティングを設定できます。これにより、各ジョブが指定されたラベルを持つエグゼキュータにスケジュールされることが保証されます。

カナリアジョブスケジューリングのベストプラクティス

カナリアジョブスケジューリングの実行方法

たとえば、ユーザー ID が 2xx で始まるデータのカナリアリリースを実行する場合、ジョブをコピーして jobA-base と jobA-gray の 2 つのジョブを作成できます。各ジョブのジョブパラメーターを設定します。jobA-base のジョブパラメーターを userId=-2xx に、jobA-gray のジョブパラメーターを userId=2xx に設定します。jobA-gray が実行されると、2xx で始まるユーザー ID のデータのみが処理されます。jobA-base が実行されると、2xx で始まらないユーザー ID のデータが処理されます。

エンドツーエンドカナリアリリースの実行方法

ラベルベースのルーティングを使用して、シングルホップのカナリアリリースを実行できます。これは、ラベルが gray のマシンにカナリアジョブをスケジュールできることを意味します。ジョブがマイクロサービスやメッセージなどのダウンストリームサービスも呼び出す必要があり、それらのカナリアノードを呼び出したい場合は、MSE Microservices Governance を使用してすべてのサービスをカナリアレーンに追加できます。これにより、エンドツーエンドのカナリアリリースが自動的に実行されます。

ラベルベースのルーティングを設定する手順

ステップ 1: ユーザー側ノードのラベルを設定する

SDK プラグインを使用した拡張 (コードの変更が必要)

  1. pom.xml ファイルに次の依存関係を追加し、xxl-job-core 依存関係の前に配置します。バージョン番号の詳細については、「バージョンガイド」をご参照ください。

    <dependency>
      <groupId>com.aliyun.schedulerx</groupId>
      <artifactId>schedulerx3-plugin-xxljob</artifactId>
      <version>${Latest version number}</version>
    </dependency>
  2. アプリケーションの起動時に、Java 仮想マシン (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 Microservices Governance のエージェントを使用した拡張 (コードの変更は不要)

  1. アプリケーションのデプロイメント方法に基づいて、アプリケーションを MSE Microservices Governance エージェントに接続します。詳細については、「アプリケーションの接続」をご参照ください。

    重要

    エージェントのバージョンは 4.4.0 以降である必要があります。

  2. アプリケーションのデプロイメント方法に基づいて、カナリアアプリケーションクラスターとエンドツーエンドカナリアリリースレーングループを作成してデプロイします。詳細については、「エンドツーエンドカナリアリリース」をご参照ください。

ステップ 2: 接続の確認

左側のナビゲーションウィンドウで、[アプリケーション管理] をクリックします。表示されたページで、[エグゼキュータ数] を確認します。接続されたマシンのラベルが表示されていれば、接続は成功です。

ステップ 3: ラベルベースのルーティングを設定する

左側のナビゲーションウィンドウで、[ジョブ管理] をクリックします。表示されたページで、ターゲットジョブを見つけ、[操作] 列で [その他] > [マシンを指定] を選択します。[指定タイプ][ラベル] に設定します。これにより、ジョブが指定されたラベルを持つエグゼキュータ上でのみ実行されるようになります。