タグベースのルーティング機能を使用すると、タグを使用して1つ以上のアプリケーションインスタンスを同じグループに割り当てることができます。 この方法で、特定のグループのアプリケーションインスタンスにトラフィックを転送できます。 タグベースのルーティング機能は、複数バージョンの開発とテスト、複数バージョンのアプリケーションのトラフィック調整、A/Bテストなどのシナリオで使用できます。 このトピックでは、Spring Cloudアプリケーションのタグベースのルーティングを設定する方法について説明します。
背景情報
タグベースのルーティング機能は、Elastic Compute Service(ECS)クラスターにデプロイされたアプリケーションでのみ使用できます。
シナリオ
複数バージョンの開発とテスト
複数のバージョンが同時に開発されている場合は、バージョンごとに開発環境を準備する必要があります。 開発環境のコストは高くなります。 コストを削減するために、タグベースのルーティングを使用してエンドツーエンドのトラフィック調整を実装できます。
エンドツーエンドのトラフィック調整は、タグベースのルーティング機能に基づいて実装されます。 エンドツーエンドのトラフィック調整により、特定のトラフィックを特定の開発環境にルーティングできます。 たとえば、開発環境1で、アプリケーション B(V1.1)およびアプリケーション D(V1.1)のタグ1を作成し、タグベースのルーティングルールを設定します。 このようにして、アプリケーション Aがアプリケーション Bを呼び出すと、システムはトラフィックがタグベースのルーティングルールの条件を満たしているかどうかを確認します。 一致する場合、トラフィックは開発環境1のアプリケーション B(V1.1)にルーティングされます。 一致しない場合、トラフィックはベースライン環境のアプリケーション B(V1)にルーティングされます。 アプリケーション Cがアプリケーション Dを呼び出すと、トラフィックはタグベースのルーティングルールに基づいてアプリケーション D(V1)またはアプリケーション D(V1.1)にルーティングされます。
複数バージョンのアプリケーションのトラフィック調整
アプリケーションの複数のバージョンがオンラインで同時に実行され、共通環境や特殊環境などの異なる環境にデプロイされている場合は、タグベースのルーティング機能を使用して、異なる環境の異なるバージョン宛てのトラフィックを分離できます。 たとえば、フラッシュセールスオーダーのトラフィック、または異なるチャネルからのオーダーのトラフィックを特殊環境にルーティングし、共通のトラフィックを共通環境にルーティングできます。 このようにして、特殊環境宛てのトラフィックは、特殊環境で例外が発生した場合でも共通環境にルーティングされず、共通環境は影響を受けません。
A/Bテスト
アプリケーションの複数のバージョンがオンラインで同時に実行されます。 アプリケーションの異なるバージョンでA/Bテストを実行するには、エンドツーエンドのトラフィック調整を使用して、リージョン Aから開始されたトラフィックをアプリケーション V1にルーティングし、リージョン Bから開始されたトラフィックをアプリケーション V1.1にルーティングできます。 その後、異なるバージョンを確認できます。 これは、新製品や新機能をリリースする際のリスクを軽減し、製品の革新を促進するのに役立ちます。
手順
この例では、アプリケーション AはECSクラスターにデプロイされています。 アプリケーション Aにはデフォルトグループがあり、グループには3つのアプリケーションインスタンスが含まれています。
タグベースのルーティングを設定するには、次の手順を実行します。
アプリケーション Aのグループ1とグループ2を作成します。
デフォルトグループの1つのアプリケーションインスタンスをグループ1に、デフォルトグループの別のアプリケーションインスタンスをグループ2に割り当てます。
グループ1とグループ2のタグを作成します。
タグベースのルーティングルールを作成する: グループ1とグループ2のタグに基づいて、タグベースのルーティングルールを作成します。
タグベースのルーティングルールが作成されると、アプリケーション Bがアプリケーション Aを呼び出すと、ルールに基づいてトラフィックがグループ1とグループ2にルーティングされます。 グループ1とグループ2のタグベースのルーティングルールの条件を満たさないその他のトラフィックは、デフォルトグループにルーティングされます。
タグを作成する
アプリケーションのグループを作成し、インスタンスをグループに追加します。 次に、[グループ設定] ドロップダウンリストから [JVM] を選択して、タグを作成します。 JVMはJava仮想マシンを表します。
にログインします。
アプリケーションのグループを作成します。 詳細については、「インスタンスグループを作成する」をご参照ください。
新しいグループにアプリケーションインスタンスを追加します。 デフォルトグループのアプリケーションインスタンスを新しいグループに割り当てるか、新しいグループをスケールアウトできます。 詳細については、「インスタンスをインスタンスグループに追加する」をご参照ください。
重要デフォルトグループのアプリケーションインスタンスが新しいグループに割り当てられた後、アプリケーションインスタンスを再起動する必要があります。 そうしないと、システムはタグを識別しません。 新しいグループをスケールアウトするためにアプリケーションインスタンスを追加する場合、新しいグループのインスタンスを再起動する必要はありません。
新しいグループの右上隅にある JVM[グループ設定] ドロップダウンリストから を選択します。

[グループ設定] ダイアログボックスで、[カスタム] をクリックします。 [カスタム] セクションで、[カスタム] 列のスイッチをオンにします。 [構成本文] フィールドで、グループのタグを設定し、[JVMパラメーターを設定] をクリックします。
Dalicloud.service.tag=tag1形式でタグを設定する必要があります。 tag1 はタグ名を示します。 ビジネス要件に基づいてタグ名を設定します。
次のいずれかの方法を使用して、アプリケーションを再起動します。
方法 1:[アプリケーション] ページで、再起動するアプリケーションを選択し、[一括再起動] をクリックします。 [OK] ダイアログボックスで、[OK] をクリックします。
方法 2:[アプリケーション] ページで、[アプリケーション名] 列で再起動するアプリケーションをクリックします。 [基本情報] ページの右上隅にある [停止] をクリックしてアプリケーションを停止するか、[開始] をクリックしてアプリケーションを開始します。
説明カスタム JVMパラメーターを有効にするには、アプリケーションを再起動する必要があります。
タグベースのルーティングルールを作成する
タグが作成された後、タグに基づいてタグベースのルーティングルールを作成できます。
にログインします。
左側のナビゲーションペインで、 を選択します。
[spring Cloud] ページのナビゲーションペインで、Tag-based Routing をクリックします。
Tag-based Routing ページで、[マイクロサービス名前空間] ドロップダウンリストからマイクロサービス名前空間を選択し、[タグベースのルーティングを作成] をクリックします。
[タグベースのルーティングを作成] パネルで、パラメーターを設定し、[OK] をクリックします。

次の表にパラメーターを示します。
パラメーター
説明
マイクロサービススペース
ビジネス要件に基づいて、リージョンとマイクロサービス名前空間を選択します。
ルーティングルール名
タグベースのルーティングルール名を入力します。 たとえば、
label-routing-group1と入力できます。説明
タグベースのルーティングルールの説明を入力します。
アプリケーション
ドロップダウンリストからアプリケーションを選択します。
タグ
ドロップダウンリストからタグを選択します。 タグは、アプリケーションのグループを作成するときに、カスタム JVMパラメーター -Dalicloud.service.tag に指定する値です。
タグを選択すると、[アプリケーションインスタンス] セクションにグループ内のアプリケーションインスタンスのIPアドレスが表示されます。
リンク配信
エンドツーエンドのトラフィック調整を有効にする場合は、[リンク配信] をオンにします。
説明エンドツーエンドのトラフィック調整機能はカナリアリリースされています。 この機能を使用する必要がある場合は、IDが 31723701 のDingTalkグループに参加して、EDASテクニカルサポートにお問い合わせください。
トラフィックルール
フレームワークタイプ
アプリケーションのフレームワークを選択します。 有効な値:[spring Cloud] および [dubbo]。
Spring Cloud:
/getIpなどのURLパスのみを指定できます。Dubbo:特定のサービスとインターフェースを選択できます。
パス
HTTPの相対パス。
条件モード
ビジネス要件に基づいて、[すべての条件を満たす] または [条件のいずれかを満たす] を選択します。
条件
[パラメータータイプ] ドロップダウンリストから、[パラメーター]、[Cookie]、[ヘッダー]、または [本文の内容] を選択します。 例:
[パラメーター] を選択した場合は、[値] 列に
name=xiaoming形式で値を指定する必要があります。[Cookie] を選択した場合は、[値] 列に
hello = "world"または hello = "world2" 形式で値を指定する必要があります。
結果を確認する
ビジネス要件に基づいて結果を確認します。
すべてのトラフィックを spring-cloud-a-tag1 にルーティングするルールを作成します。

特定の条件を満たすトラフィックを特定のアプリケーションにルーティングするルールを作成します。
