コンテンツへスキップ

DeliverySpec.RetryAfterMaxフィールド

フラグ名: delivery-retryafter

ステージ: アルファ、デフォルトで無効

トラッキング課題: #5811

ペルソナ: 開発者

イベント配信パラメーターを構成するためのdelivery仕様を使用する場合、retryAfterMaxフィールドを使用して、**429**と**503**のレスポンスのバックオフ時間を計算する際のHTTP Retry-Afterヘッダーの処理方法を指定できます。チャネル、サブスクリプション、ブローカー、トリガー、およびdeliveryフィールドを受け入れるその他のすべてのリソース仕様にdelivery仕様を指定できます。

retryAfterMaxフィールドは、delivery仕様で再試行を実行するように構成した場合にのみ有効になり、**429**および**503**の応答コードでの再試行にのみ関連します。このフィールドは、大きな**Retry-After**期間がスループットに影響することを防ぐためのオーバーライドを提供し、ISO 8601形式で指定する必要があります。通常のバックオフ期間とRetry-Afterヘッダー値のうち、大きい方が次の再試行で使用されます。PT0Sの「ゼロ」値を指定すると、**Retry-After**のサポートが無効になります。

この機能以前は、Knative Eventingの実装では**Retry-After**ヘッダーがサポートされていませんでしたが、このサポートを標準化する手段を提供しようとしています。まず、この機能は**オプトイン**ですが、最終的な状態は次のとおり**オプトアウト**になります。

機能ステージ 機能フラグ retryAfterMaxフィールドなし retryAfterMaxフィールドあり
アルファ/ベータ 無効 Webhook検証で承認済み、Retry-Afterヘッダーは適用されません Webhook検証で拒否済み
アルファ/ベータ 有効 Webhook検証で承認済み、Retry-Afterヘッダーは適用されません Webhook検証で承認済み、最大オーバーライド>0の場合、Retry-Afterヘッダーが適用されます
安定版/GA n/a 最大オーバーライドなしでRetry-Afterヘッダーが適用されます 最大オーバーライド>0の場合、Retry-Afterヘッダーが適用されます

次の例は、イベントの送信を3回再試行し、最大バックオフを120秒に設定しながら**Retry-After**ヘッダーを尊重するサブスクリプションを示しています。

apiVersion: messaging.knative.dev/v1
kind: Subscription
metadata:
  name: example-subscription
  namespace: example-namespace
spec:
  subscriber:
    ref:
      apiVersion: serving.knative.dev/v1
      kind: Service
      name: example-sink
  delivery:
    backoffDelay: PT2S
    backoffPolicy: linear
    retry: 3
    retryAfterMax: PT120S

注記

機能フラグはWebhook検証を通じてretryAfterMaxフィールドのすべてのDeliverySpecの使用を強制しますが、チャネルやソースなど、すべての実装が実際にこのフィールドのサポートを実装していることを保証するものではありません。共有HTTPMessageSender.SendWithRetries()ロジックは、この機能をサポートするように強化されており、再試行を実行するためにこれを使用するすべての実装は自動的に恩恵を受けます。この共有ライブラリに基づいていない拡張機能の実装(RabbitMQやGoogle Pub/Subなど)では、retryAfterMaxフィールドを尊重するために追加の開発作業が必要です。

サイトトラフィックを理解するために、分析とCookieを使用しています。当サイトのご利用に関する情報は、その目的でGoogleと共有されます。詳細はこちら。