サーキットブレーカーポリシー

ポリシー名

サーキットブレーカー

概要

アップストリームが受信する要求または接続が多くなりすぎるのを防止する

カテゴリ

サービス品質

使用可能な最小 Flex Gateway バージョン

v1.9.0

返される状況コード

503 - Service Unavailable (サービスを利用できません)

概要

サーキットブレーカーポリシーでは、アップストリームサービスが一度に受信する要求または接続が多くなりすぎるのを防止します。定義済みの最大数に達すると、Flex Gateway によって ​503 - Service Unavailable (サービスを利用できません)​ エラーが返されます。

管理 Flex Gateway または接続モードでは、同じアップストリームを要求する際に各 API インスタンスに独立した制限があるため、それぞれで最大数いっぱいまで使用できます。ローカルモードでは、制限が異なる API インスタンス間で共有されるため、すべてが同じアップストリームの最大数に従う必要があります。すべてのモードで、最大数はレプリカ間で分配されず、それぞれのゲートウェイで最大数いっぱいまで使用できます。

サーキットブレーカーポリシーは、Envoy アップストリームクラスターサーキットブレーク機能の拡張機能です。Envoy のサーキットブレークについての詳細は、Envoy ドキュメントの 「Circuit Breaking (サーキットブレーク)」​を参照してください。

ポリシーのパラメーターの設定

Flex Gateway のローカルモード

ローカルモードでは、宣言型の設定ファイルを使用してポリシーを API に適用します。以下のポリシー定義とパラメーターの表を参照してください。

apiVersion: gateway.mulesoft.com/v1alpha1
kind: PolicyBinding
metadata:
  name: upstream-policy
spec:
  targetRef:
    Kind: Service
    name: upstream
  policyRef:
    name: circuit-breaker-flex
  config:
    thresholds:
      maxConnections: <number> // OPTIONAL
      maxPendingRequests: <number> // OPTIONAL
      maxRequests: <number> // OPTIONAL
      maxRetries: <number> // OPTIONAL
      maxConnectionPools: <number> // OPTIONAL
ローカルモードでは制限が独立していないため、異なる API インスタンスでアップストリームの最大数を共有します。
パラメーター 必須または省略可能 説明

maximumConnections

省略可能

アップストリームへの API ごとの接続の最大数。

maximumPendingRequests

省略可能

接続を待機する間のキューに登録された要求の最大数。

maximumRequests

省略可能

アップストリームへの未処理要求の最大数。

maximumRetries

省略可能

未処理再試行の最大数。

maximumConnectionPools

省略可能

アップストリームへの同時に開始される接続プールの最大数。

リソースの設定例

次の例では、一度に最大 1 つの要求をサポートするポリシーを定義します。

apiVersion: gateway.mulesoft.com/v1beta1
kind: Configuration
metadata:
  name: circuit-breaker
  namespace: test-ns
spec:
  circuitBreaker:
    thresholds:
      maxConnections: 1
      maxPendingRequests: 1
      maxRequests: 1
      maxRetries: 1
      maxConnectionPools: 1

管理 Flex Gateway および Flex Gateway の接続モード

UI からポリシーを API インスタンスに適用するときに、以下のパラメーターが表示されます。

パラメーター 必須または省略可能 説明

Maximum connections (最大接続数)

省略可能

アップストリームへの API ごとの接続の最大数。

Maximum pending requests (最大の保留中の要求数)

省略可能

接続を待機する間のキューに登録された要求の最大数。

Maximum requests (最大要求数)

省略可能

アップストリームへの未処理要求の最大数。

Maximum retries (最大再試行数)

省略可能

未処理再試行の最大数。

Maximum connection pools (最大接続プール数)

省略可能

アップストリームへの同時に開始される接続プールの最大数。

管理 Flex Gateway または接続モードでは、同じアップストリームを要求する際に各 API インスタンスに独立した制限があるため、それぞれで最大数いっぱいまで使用できます。