隔離ルールは、インターフェイスと依存関係の同時スレッド数を制御して、システムの安定性を確保します。これらは通常、遅い SQL 文やダウンストリームアプリケーションからの応答時間の増加など、アプリケーションの内部プロセスやダウンストリームの依存関係が不安定になるシナリオで使用されます。このトピックでは、隔離ルールの設定および管理方法について説明します。
前提条件
Microservices Engine (MSE) Enterprise Edition が有効化されていること。
お使いのマイクロサービスアプリケーションで MSE のマイクロサービスガバナンス機能が有効になっていること。詳細については、次のトピックをご参照ください。
背景情報
強い依存関係のメソッドまたはインターフェイスが不安定になった場合、その同時スレッド数を制限して問題を隔離できます。リクエストの応答時間が増加すると、同時スレッド数も増加します。同時スレッド数がしきい値を超えると、MSE は積み上げられたタスクが完了し、スレッド数が減少するまで超過リクエストを拒否します。このメソッドは例外を隔離し、安定性を向上させます。
同時実行のしきい値を設定するには、次の情報を使用します。
同時実行数 = 予想される秒間クエリ数 (QPS) × 応答時間 + 冗長性。
たとえば、予想される SQL 実行時間が 20 ms、予想される QPS が 20、最大同時実行数が 6 であるとします。次のロジックに基づいて同時実行のしきい値を設定します: Max(20/1000 × 20, 6) = 6。冗長性として 2 を追加します。推奨される同時実行のしきい値は 8 です。
しきい値を設定した後、デッドロックやパフォーマンスの問題によって SQL 文の実行が遅くなった場合、8 つのスレッドのみを占有します。これにより、すぐには終了できない受信リクエストがプロセスのアクティブスレッドを使い果たすのを防ぎます。
SQL 文が正常に戻ると、同時スレッド数は急速に減少します。数がしきい値を下回ると、システムはリクエストの拒否を停止し、アプリケーションの処理能力は迅速に回復します。このメソッドは、応答時間に基づいて自動的に調整し、不安定なアプリケーションを隔離します。
隔離ルールは通常、強い依存関係の隔離シナリオで使用されます。
手順
MSE コンソールにログオンし、上部のナビゲーションバーでリージョンを選択します。
左側のナビゲーションウィンドウで、Microservices Governance > Application Governance を選択します。
Application list ページで、目的のアプリケーションのリソースカードをクリックします。
アプリケーション詳細ページで、次のいずれかの方法を使用して隔離ルールを作成します。
左側のナビゲーションウィンドウで、Application overview をクリックします。表示されたページで、Through QPS TOP タブをクリックします。ターゲットインターフェイスを見つけ、操作 列の Isolation をクリックします。
左側のナビゲーションウィンドウで、API Details をクリックします。Concurrency Isolation タブで、Add isolation rule をクリックします。
左側のナビゲーションウィンドウで、Traffic management をクリックします。Flow protection タブで、Concurrency Isolation タブをクリックし、次に Add isolation rule をクリックします。
Add Isolation Protection Rule または Add Rule ダイアログボックスで、パラメーターを設定し、[追加] をクリックします。
説明パラメーターの詳細については、「詳細情報」をご参照ください。
例: 十分なリソースの確保
リクエストの応答時間が増加すると、同時スレッド数も増加します。同時スレッド数がしきい値を超えると、MSE は積み上げられたタスクが完了し、スレッド数が減少するまで超過リクエストを拒否します。このメソッドは例外を隔離し、安定性を向上させます。たとえば、SQL 文の実行時間は 20 ms で、予想される QPS は 20 です。
Add Isolation Protection Rule または Add Rule ダイアログボックスで、次のパラメーターを設定します。
Interface name パラメーターを設定します。
Concurrency threshold を 10 に設定します。
設定が完了した後、デッドロックやパフォーマンスの問題によって SQL 文の実行が遅くなった場合、10 個のスレッドのみを占有します。これにより、すぐには終了できない受信リクエストがプロセスのアクティブスレッドを使い果たすのを防ぎます。SQL 文が正常に戻ると、同時スレッド数は急速に減少します。数がしきい値を下回ると、システムはリクエストの拒否を停止し、アプリケーションの処理能力は迅速に回復します。このメソッドは、応答時間に基づいて自動的に調整し、不安定なアプリケーションを隔離します。
詳細情報
次の表に、Add Isolation Protection Rule または Add Rule ダイアログボックスで設定するパラメーターを示します。
設定項目 | 説明 |
Interface name | 隔離対象のリソースの名前。 |
Concurrency threshold | リソースの同時スレッド数のしきい値。これは、リソースに対して実行されているスレッドの数です。 |