スロットリングルールは、監視対象のアプリケーションまたはサービスの 1 秒あたりのクエリ数 (QPS) が指定したしきい値に達した場合にトラフィックを即座にブロックするために使用されます。 これにより、トラフィックの急増によるアプリケーションの停止を防ぎ、アプリケーションの高可用性を確保します。 このトピックでは、スロットリングルールを作成する方法と、一般的なシナリオのスロットリングルールの例を示します。
前提条件
Microservices Engine (MSE) Enterprise Edition がアクティブ化されています。
マイクロサービスアプリケーションに対して MSE の Microservices Governance 機能が有効になっています。 詳細については、以下のトピックを参照してください。
背景情報
スロットリングは、ネットワーク伝送における一般的な概念であり、ネットワークパケットの送信を調整するために使用されます。 システムが処理する必要のあるリクエストはランダムであり、制御できません。 ただし、システムのリクエスト処理能力には制限があります。 したがって、スロットリングは、システムのリクエスト処理能力に基づいて実装する必要があります。
手順
MSE コンソール にログインし、上部のナビゲーションバーでリージョンを選択します。
左側のナビゲーションペインで、Microservices Governance > Application Governance を選択します。
Application list ページで、目的のアプリケーションのリソースカードをクリックします。
アプリケーションの詳細ページで、次のいずれかの方法でスロットリングルールを作成します。
左側のナビゲーションペインで、Application overview をクリックします。 表示されるページで、Through QPS TOP タブをクリックします。 [通過 QPS TOP] タブで、スロットリングルールを適用するインターフェースを見つけ、Actions 列の Flow Control をクリックします。
左側のナビゲーションペインで、API Details をクリックします。 表示されるページの [WEB サービス] タブで、Interface Flow Control タブをクリックします。 [インターフェースフロー制御] タブで、Add Throttling Rule をクリックします。
左側のナビゲーションペインで、Traffic management をクリックします。 表示されるページで、Flow protection タブをクリックします。 [フロー保護] タブで、Interface Flow Control タブをクリックします。 [インターフェースフロー制御] タブで、Add Throttling Rule をクリックします。
Add Throttling Protection Rule または Add Rule ダイアログボックスで、ルールパラメータを設定します。 ルールパラメータの詳細については、このトピックのパラメータセクションを参照してください。
[新規] をクリックします。
一般的なシナリオ: ピーク負荷のシフトを実装してリクエストを一定の速度で処理する
リクエストトラフィックは、ピーク時とオフピーク時に変動します。 スロットリングを実装して、ピークトラフィックを特定の期間 (キューイング時間) だけ遅延させて処理することができます。 これにより、ユーザーエクスペリエンスに影響を与えることなく、すべてのリクエストを処理できます。
Add Throttling Protection Rule または Add Rule ダイアログボックスで、次のパラメータ設定を使用してスロットリングルールを作成します。
Stand-alone QPS threshold パラメータを 5 に設定します。
Flow control effect パラメータを Waiting in line に設定します。
Timeout パラメータを 5000 に設定します。 単位: ミリ秒。
システムは 200 ミリ秒ごとにリクエストを処理し、累積されたリクエストはキューに入れられます。 キューイングタイムアウト期間は 5000 ミリ秒に設定されています。 リクエストが 5,000 ミリ秒を超えてキューに入れられている場合、リクエストは失敗し、スロットリングのために表示されるテキストや静的ページなどのデフォルト情報が直接返されます。
パラメータ
次の表に、Add Throttling Protection Rule または Add Rule ダイアログボックスで設定する必要があるパラメータを示します。
パラメータ | 説明 |
Interface name | スロットリングルールを適用するインターフェースの名前。 |
Whether to open | スロットリングルールを有効にするかどうかを指定します。 スロットリングルールは、スイッチをオンまたはオフにするとすぐに有効または無効になります。 |
Stand-alone QPS threshold | スロットリングルールをトリガーする QPS しきい値。 |
Flow control effect | ブロックされたリクエストを処理するために使用される方法。 有効な値:
|