github.com/cenkalti/backoff と比較して、Google Pub/Sub は RetryPolicies で指数バックオフをどのように実装していますか?

Linda Hamilton
リリース: 2024-10-30 08:29:27
オリジナル
949 人が閲覧しました

How Does Google Pub/Sub Implement Exponential Backoff in RetryPolicies Compared to github.com/cenkalti/backoff?

RetryPolicies の指数バックオフ

Google Pub/Sub の RetryPolicy で導入された指数バックオフ機能は、github で定義されている ExponentialBackOff で説明されている概念を反映しています。あなたが言及した com/cenkalti/backoff。

最小および最大バックオフ

はい、その通りです。 pubsub.RetryPolicy の MinimumBackoff パラメーターと MaximumBackoff パラメーターは、github.com/cenkalti/backoff の InitialInterval と MaxInterval にそれぞれ対応します。

  • MinimumBackoff: 失敗した操作を再試行するときの初期待機期間。
  • MaximumBackoff: 再試行間に許可される最大時間。

ランダム化

Cloud Pub/Sub は、github.com と同じ計算式を使用して間隔をランダム化します。 /cenkalti/backoff:

randomized interval = RetryInterval * (random value in range [1 - RandomizationFactor, 1 + RandomizationFactor])
ログイン後にコピー

pubsub.RetryPolicy では RandomizationFactor はデフォルトで 0.15 に設定されます。

乗数と MaxElapsedTime

github とは異なります.com/cenkalti/backoff、pubsub.RetryPolicy には、失敗するたびに RetryInterval を 2 倍にする Multiplier に相当するものがありません。代わりに、Pub/Sub の再試行遅延は、RandomizationFactor によって決定される固定率で指数関数的に増加します。

さらに、pubsub.RetryPolicy には明示的な MaxElapsedTime がありません。ただし、Pub/Sub はゴー ルーチン ベースの再試行メカニズムを実装しており、再試行はサブスクリプションを処理するゴー ルーチンの有効期間によって事実上制限されます。

あなたの実験は、指数関数的バックオフの動作を正確に示しています。バックオフ間隔が長い (5 秒から 60 秒) と再試行の頻度が低くなり、バックオフ間隔が短い (1 秒から 2 秒) と再試行の頻度が高くなります。間隔の差異は、ランダム化係数によるものです。

以上がgithub.com/cenkalti/backoff と比較して、Google Pub/Sub は RetryPolicies で指数バックオフをどのように実装していますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!