Google Pub/Sub 的RetryPolicy 中的指數退避如何工作
Google Pub/Sububy 功能來增強伺服器中的功能來增強錯誤處理端操作。此策略的設定選項包括MinimumBackoff 和MaximumBackoff 參數。
MinimumBackoff 和MaximumBackoff 設定
MinimumBackoff 參數指定第一次重試之前的初始等待時間。 MaximumBackoff 參數定義後續重試之間允許的最長時間。這些參數對應於 github.com/cenkalti/backoff 中實現的指數退避演算法中的 InitialInterval 和 MaxInterval。
指數退避演算法
在指數退避中,每個隨機間隔使用以下公式計算:
retryInterval = InitialInterval * (random value in range [1 - RandomizationFactor, 1 + RandomizationFactor])
其中InitialIntervaloff 是MinimumBackoff,隨機值在重試延遲中引入隨機化。 retryInterval 由 MaximumBackoff 限制。
範例程式
提供的程式示範了具有不同的 MaximumBackoff 和 MaximumBackoff 值的指數退避演算法的行為。
程式輸出的觀察結果
隨機化和乘數
RetryPolicy 使用的指數退避演算法包括隨機化,以確保重試並不總是在相同的時間間隔內進行。但是,提供的程式的輸出並未顯示重試間隔呈指數增長的清晰模式,這表明未使用 Multiplier 參數(該參數會使每次迭代的重試間隔加倍)。
MaxElapsedTime
與 github.com/cenkalti/backoff 中的指數退避實現不同,RetryPolicy 沒有等效的 MaxElapsedTime 參數。這意味著如果伺服器不可用,重試將無限期地繼續,除非應用程式獨立處理和限制重試。
以上是Google Pub/Sub 的具有指數退避的 RetryPolicy 如何處理最小、最大退避和隨機化?的詳細內容。更多資訊請關注PHP中文網其他相關文章!