Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimanakah Google Pub/Sub Melaksanakan Backoff Eksponen dalam RetryPolicies Berbanding dengan github.com/cenkalti/backoff?

Bagaimanakah Google Pub/Sub Melaksanakan Backoff Eksponen dalam RetryPolicies Berbanding dengan github.com/cenkalti/backoff?

Linda Hamilton
Linda Hamiltonasal
2024-10-30 08:29:27931semak imbas

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

Exponential Backoff dalam RetryPolicies

Ciri mundur eksponen yang diperkenalkan dalam Google Pub/Sub's RetryPolicy mencerminkan konsep yang diterangkan dalam ExponentialBackOff yang ditakrifkan oleh github. com/cenkalti/backoff yang anda nyatakan.

Minimum dan Maximum Backoff

Ya, anda betul. Parameter MinimumBackoff dan MaximumBackoff dalam pubsub.RetryPolicy sepadan dengan InitialInterval dan MaxInterval dalam github.com/cenkalti/backoff, masing-masing:

  • MinimumBackoff: Tempoh menunggu awal apabila mencuba semula operasi yang gagal.
  • MaximumBackoff: Jumlah maksimum masa yang dibenarkan antara percubaan semula.

Randomization

Cloud Pub/Sub menggunakan formula yang sama untuk merawak selang seperti github.com /cenkalti/backoff:

randomized interval = RetryInterval * (random value in range [1 - RandomizationFactor, 1 + RandomizationFactor])

RandomizationFactor ditetapkan kepada 0.15 secara lalai dalam pubsub.RetryPolicy.

Multiplier and MaxElapsedTime

Tidak seperti github .com/cenkalti/backoff, pubsub.RetryPolicy tidak mempunyai persamaan dengan Multiplier, yang menggandakan RetryInterval selepas setiap kegagalan. Sebaliknya, kelewatan percubaan semula Pub/Sub meningkat secara eksponen pada kadar tetap yang ditentukan oleh RandomizationFactor.

Selain itu, tiada MaxElapsedTime yang jelas dalam pubsub.RetryPolicy. Walau bagaimanapun, Pub/Sub melaksanakan mekanisme percubaan semula berasaskan rutin, di mana percubaan semula dihadkan dengan berkesan oleh jangka hayat rutin yang mengendalikan langganan.

Contoh

Percubaan anda menunjukkan gelagat mundur eksponen dengan tepat. Selang mundur yang lebih panjang (5s hingga 60s) menghasilkan percubaan semula yang kurang kerap, manakala selang yang lebih pendek (1s hingga 2s) menghasilkan percubaan semula yang lebih kerap. Varians dalam selang adalah disebabkan oleh faktor rawak.

Atas ialah kandungan terperinci Bagaimanakah Google Pub/Sub Melaksanakan Backoff Eksponen dalam RetryPolicies Berbanding dengan github.com/cenkalti/backoff?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn