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

Microservices Engine:サーキットブレーカールールの設定

最終更新日:Nov 09, 2025

Microservices Engine (MSE) では、サーキットブレーカールールを使用して、アプリケーションまたはアプリケーションが依存するダウンストリームアプリケーションのリクエストの応答時間や異常なリクエストの比率をモニターできます。指定されたしきい値に達すると、MSE は依存するダウンストリームアプリケーションの優先度を直ちに下げます。指定された期間内、システムは異常なダウンストリームアプリケーションを呼び出しません。これにより、アプリケーションの安定性と高可用性が確保されます。指定された期間が経過すると、システムは依存するダウンストリームアプリケーションへの呼び出しを再開します。このトピックでは、サーキットブレーカールールの作成方法と、一般的なシナリオのサンプルルールについて説明します。

前提条件

背景情報

トラフィック制御に加えて、呼び出しトレースにおける不安定なメソッドやダウンストリームの依存関係に対するサーキットブレーキングも、トラフィック保護のための重要な手段です。呼び出し関係の複雑さにより、呼び出しトレースのいずれかの部分でエラーが発生すると、リクエストは失敗します。これは不安定性を増幅させ、トレース全体が利用できなくなる原因にさえなり得ます。呼び出しトレース内のメソッドが不安定になった場合 (たとえば、メソッドがタイムアウトしたり、異常なリクエストの比率が増加したりした場合)、サーキットブレーキング機能はそのメソッドへの呼び出しを制限します。これにより、リクエストは迅速に失敗 (フェイルファスト) し、エラーがトレース全体に影響を与えるのを防ぎます。

ほとんどの場合、サーキットブレーカールールは、弱く依存するアプリケーションの優先度を下げる必要があるシナリオに適用されます。

サンプルサーキットブレーカールールの詳細については、このトピックの「シナリオ 1: 低速な呼び出しに対するサーキットブレーカールールの作成」および「シナリオ 2: 異常なリクエストに対するサーキットブレーカールールの作成」セクションをご参照ください。

機能へのアクセス

  1. MSE コンソールにログインし、トップナビゲーションバーでリージョンを選択します。

  2. 左側のナビゲーションウィンドウで、Microservices Governance > Application Governance を選択します。

  3. Application list ページで、管理するアプリケーションを見つけてクリックします。アプリケーションの詳細ページで、次のいずれかの方法を使用してサーキットブレーカールールを作成します。

    • 左側のナビゲーションウィンドウで、API Details をクリックします。表示されたページで、Client タブをクリックします。インターフェイスを選択し、Circuit Breaking タブをクリックします。[サーキットブレーキング] タブで、Added fusing rule をクリックします。

    • 左側のナビゲーションウィンドウで、Traffic management をクリックします。Flow protection タブをクリックし、Fuse rule をクリックしてから、Added fusing rule をクリックします。

  4. Add Circuit Breaking Rule ダイアログボックスで、ルールパラメーターを設定し、New をクリックします。

ルールパラメーターの詳細については、このトピックの「パラメーター」セクションをご参照ください。

ルールの詳細

次の表に、Add Circuit Breaking Rule ダイアログボックスのパラメーターを示します。

パラメーター

説明

Interface name

ルールが適用されるアプリケーションリソース。

Statistical window duration

タイムウィンドウの長さ。有効な範囲は 1 秒から 120 分です。

Minimum number of requests

サーキットブレーキングをトリガーする最小リクエスト数。現在のタイムウィンドウ内のリクエスト数がこのパラメーターの値より少ない場合、サーキットブレーカールールが満たされていてもサーキットブレーキングはトリガーされません。

Threshold Type

しきい値タイプ。有効な値: Slow call ratio (%) および Abnormal proportion (%)

  • このパラメーターを Slow call ratio に設定した場合、Slow call RT パラメーターを設定する必要があります。これは、リクエストの応答時間のしきい値を指定します。リクエストの応答時間が [低速呼び出し RT] パラメーターの値を超えると、そのリクエストは低速呼び出しとしてカウントされます。

    また、Circuit Breaking Ratio Threshold パラメーターも設定する必要があります。これは、低速呼び出しに対してサーキットブレーキングをトリガーするパーセンテージのしきい値を指定します。サーキットブレーカールールが有効になった後、指定されたタイムウィンドウ内のリクエスト数が Minimum number of requests パラメーターの値より大きく、低速呼び出しの割合が [サーキットブレーキング率のしきい値] パラメーターの値より大きい場合、Circuit Breaking Duration (s) パラメーターで指定されたサーキットブレーキング期間内にリクエストが自動的にブロックされます。サーキットブレーキング期間が経過すると、サーキットブレーカーは検出および回復状態に入ります。次のリクエストの応答時間が Slow call RT パラメーターの値より小さい場合、サーキットブレーキングは終了します。次のリクエストの応答時間が Slow call RT パラメーターの値より大きい場合、サーキットブレーキングが再度トリガーされます。

  • このパラメーターを Abnormal proportion に設定した場合、Circuit Breaking Ratio Threshold パラメーターを設定する必要があります。これは、異常なリクエストに対してサーキットブレーキングをトリガーするパーセンテージのしきい値を指定します。

    サーキットブレーカールールが有効になった後、指定されたタイムウィンドウ内のリクエスト数が最小リクエスト数より大きく、異常なリクエストの割合が [サーキットブレーキング率のしきい値] パラメーターの値より大きい場合、Circuit Breaking Duration (s) パラメーターで指定されたサーキットブレーキング期間内にリクエストが自動的にブロックされます。

Circuit Breaking Duration (s)

サーキットブレーキングが実装される期間。リソースにサーキットブレーキングが実装されている場合、設定された期間内にすべてのリクエストが迅速に失敗します。

Circuit Breaking Policy

サーキットブレーカーの回復フェーズ (半開状態) の回復ポリシー。

  • Single detection recovery: サーキットブレーキング期間が経過すると、サーキットブレーカーは次のリクエストを検出します。リクエストが低速呼び出しまたは異常なリクエストでない場合、サーキットブレーキングは終了します。それ以外の場合、サーキットブレーキングが再度トリガーされます。

  • Progressive recovery: このオプションを選択した場合は、Number of recovery phases および Minimum number of passes per step パラメーターを設定する必要があります。

    • サーキットブレーキング期間が経過すると、サーキットブレーカーは指定された回復ステージ数に基づいて段階的な回復を実行します。ステージ内のリクエスト数が [ステップごとの最小パス数] パラメーターの値に達すると、チェックがトリガーされます。チェックされたリクエスト数が設定されたしきい値を超えない場合、すべてのリクエストが許可されるまで、許可されるリクエストの割合が徐々に増加します。ステージ内でチェックされたリクエスト数が設定されたしきい値を超えた場合、サーキットブレーキングが再度トリガーされます。

    • リクエストの割合は、次の数式に基づいて計算されます: リクエスト率 (T) = 100/回復ステージ数 (N)。最初のステージのリクエスト率は T で、2 番目のステージのリクエスト率は 2T です。計算は、リクエスト率が 100% になるまで終了します。

    • たとえば、回復ステージの数が 3 で、各ステージで許可されるリクエストの最小数が 5 の場合、リクエストは 33%、67%、100% の割合に基づいて 3 つのステージに分散されます。各ステージのリクエスト数が 5 以上の場合、チェックがトリガーされます。各ステージのリクエスト数が 5 未満の場合、すべてのリクエストが許可されるまで、システムは次の回復ステージに進みます。

シナリオ 1: 低速な呼び出しに対するサーキットブレーカールールの作成

たとえば、サードパーティのサービスを呼び出し、応答時間が長い場合、現在のインターフェイスへの呼び出しが影響を受けます。この問題を解決するには、低速な呼び出しに対してサーキットブレーキングを実行します。

Add Circuit Breaking Rule ダイアログボックスで、次の表で説明されているパラメーターを設定します。

パラメーター

説明

Interface name

test

インターフェイス名。

Statistical window duration

1

このパラメーターを 1 に設定します。単位: 秒。

Minimum number of requests

10

サーキットブレーカーをトリガーする最小リクエスト数は 10 です。

Threshold Type

低速呼び出し率

このパラメーターを [低速呼び出し率 (%)] に設定します。

Slow call RT

1000

このパラメーターを 1000 に設定します。単位: ミリ秒。リクエストの応答時間が 1,000 ミリ秒を超えると、そのリクエストは低速呼び出しとしてカウントされます。

Circuit Breaking Ratio Threshold

80%

このパラメーターを 80 に設定します。単位: %。低速呼び出しの割合が 80% に達すると、サーキットブレーキングがトリガーされます。

Circuit Breaking Duration (s)

10

このパラメーターを 10 秒に設定します。

Circuit Breaking Policy

単一検出回復

サーキットブレーキング期間が経過すると、サーキットブレーカーは次のリクエストを検出します。リクエストが低速呼び出しまたは異常なリクエストでない場合、サーキットブレーキングは終了します。それ以外の場合、サーキットブレーキングが再度トリガーされます。

サーキットブレーカールールが有効になった後、1 秒以内にリクエスト数が 10 を超え、低速呼び出しの割合が 80% を超えると、次の 10 秒間はすべてのリクエストが失敗します。10 秒後、サーキットブレーカーは次のリクエストを検出します。次のリクエストの応答時間が 1,000 ミリ秒未満の場合、サーキットブレーキングは終了します。それ以外の場合、サーキットブレーキングが再度トリガーされます。

シナリオ 2: 異常なリクエストに対するサーキットブレーカールールの作成

たとえば、サードパーティのサービスの内容が表示されるときに、システムで異常なリクエストが発生する場合などです。異常なリクエストの比率が高い場合は、異常なリクエストに対してサーキットブレーキングを実行して、より良いユーザーエクスペリエンスを確保できます。

Add Circuit Breaking Rule ダイアログボックスで、次の表で説明されているパラメーターを設定します。

パラメーター

説明

Interface name

test

API 名。

Statistical window duration

1

統計収集期間は 1 秒です。

Minimum number of requests

10

サーキットブレーカーをトリガーする最小リクエスト数は 10 です。

Threshold Type

異常率

このパラメーターを [異常率 (%)] に設定します。

Circuit Breaking Ratio Threshold

80%

このパラメーターを 80 に設定します。単位: %。異常なリクエストの割合が 80% に達すると、サーキットブレーキングがトリガーされます。

Circuit Breaking Duration (s)

10

このパラメーターを 10 秒に設定します。

Circuit Breaking Policy

単一検出回復

サーキットブレーキング期間が経過すると、サーキットブレーカーは次のリクエストを検出します。リクエストが低速呼び出しまたは異常なリクエストでない場合、サーキットブレーキングは終了します。それ以外の場合、サーキットブレーキングが再度トリガーされます。

サーキットブレーカールールが有効になった後、1 秒以内にリクエスト数が 10 を超え、異常なリクエストの割合が 80% を超えると、次の 10 秒間はすべてのリクエストが失敗します。10 秒後、サーキットブレーカーは次のリクエストを検出します。次のリクエストが正常な場合、サーキットブレーキングは終了します。それ以外の場合、サーキットブレーキングが再度トリガーされます。