Google Pub/Sub の RetryPolicy の指数バックオフの仕組み
Google Pub/Sub は最近、サーバーでのエラー処理を強化する RetryPolicy 機能を導入しました。 -側の操作。このポリシーの構成オプションには、MinimumBackoff パラメーターと MaximumBackoff パラメーターが含まれます。
MinimumBackoff および MaximumBackoff の構成
MinimumBackoff パラメーターは、最初の再試行までの初期待機期間を指定します。 MaximumBackoff パラメーターは、後続の再試行の間に許可される最大時間を定義します。これらのパラメーターは、github.com/cenkalti/backoff で実装されている指数バックオフ アルゴリズムの InitialInterval と MaxInterval に対応します。
指数バックオフ アルゴリズム
指数バックオフでは、それぞれがランダム化されます間隔は次の式を使用して計算されます:
retryInterval = InitialInterval * (random value in range [1 - RandomizationFactor, 1 + RandomizationFactor])
ここで、InitialInterval は MinimumBackoff であり、ランダム値により再試行遅延にランダム化が導入されます。 retryInterval は MaximumBackoff によって制限されます。
サンプル プログラム
提供されたプログラムは、異なる MinimumBackoff 値と MaximumBackoff 値を使用した指数バックオフ アルゴリズムの動作を示します。
プログラム出力からの観察
ランダム化と乗数
RetryPolicy で使用される指数バックオフ アルゴリズムには、再試行が確実に行われるようにするためのランダム化が含まれています。必ずしも同じ間隔で作られるわけではありません。ただし、提供されたプログラムの出力には、再試行間隔の指数関数的な増加の明確なパターンは示されていません。これは、反復ごとに再試行間隔を 2 倍にする Multiplier パラメーターが使用されていないことを示唆しています。
MaxElapsedTime
github.com/cenkalti/backoff の指数バックオフ実装とは異なり、RetryPolicy には同等の MaxElapsedTime パラメーターがありません。これは、アプリケーションが再試行を個別に処理および制限しない限り、サーバーが利用できない場合、再試行が無期限に継続されることを意味します。
以上が指数バックオフを使用した Google Pub/Sub の RetryPolicy は、最小バックオフ、最大バックオフ、およびランダム化をどのように処理しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。