Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah Parameter Dasar Cuba Semula Google Pub/Sub Berkaitan dengan Pustaka `github.com/cenkalti/backoff`?

Bagaimanakah Parameter Dasar Cuba Semula Google Pub/Sub Berkaitan dengan Pustaka `github.com/cenkalti/backoff`?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-29 08:04:30398semak imbas

How Do Google Pub/Sub's Retry Policy Parameters Relate to the `github.com/cenkalti/backoff` Library?

Dasar Percubaan Semula Google Pub/Sub: Konfigurasi Backoff Eksponen

Cloud Pub/Sub baru-baru ini memperkenalkan ciri sisi pelayan RetryPolicy yang membenarkan konfigurasi mundur eksponen untuk percubaan penghantaran mesej. Dokumentasi yang disediakan menerangkan bahawa parameter MinimumBackoff dan MaximumBackoff menentukan tempoh menunggu awal dan maksimum antara percubaan semula. Walau bagaimanapun, hubungan antara parameter ini dengan InitialInterval dan MaxInterval yang ditakrifkan dalam perpustakaan github.com/cenkalti/backoff masih tidak jelas.

Algoritma ExponentialBackOff yang digunakan oleh github.com/cenkalti/backoff mentakrifkan selang percubaan semula rawak sebagai:

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

di mana RetryInterval bermula pada InitialInterval dan dihadkan oleh MaxInterval.

Lakukan peta MinimumBackoff dan MaximumBackoff ke InitialInterval dan MaxInterval?

Contoh Penggunaan dan Pemerhatian

Program contoh yang disediakan menggambarkan gelagat mundur eksponen. Dengan MinimumBackoff ditetapkan kepada 5s dan MaximumBackoff ditetapkan kepada 60s, masa antara percubaan semula meningkat seperti yang dijangkakan, sehingga maksimum 60s.

Mengurangkan MinimumBackoff dan MaximumBackoff masing-masing kepada 1s dan 2s, menghasilkan percubaan semula yang lebih kerap dengan kelewatan konsisten sekitar 3s. Ini menunjukkan bahawa algoritma backoff eksponen sedang membuat "usaha terbaik" untuk kekal dalam maksimum yang ditentukan.

Randomization, Multiplier dan MaxElapsedTime

Output contoh tidak mempamerkan rawak yang boleh dilihat, dan tidak ada pengganda eksplisit yang ditentukan. Algoritma backoff eksponen dalam Pub/Sub menggunakan formula yang serupa dengan formula yang diterangkan dalam github.com/cenkalti/backoff.

Mengenai MaxElapsedTime, Cloud Pub/Sub tidak mempunyai konsep yang setara pada masa ini. Walau bagaimanapun, anda boleh melaksanakan gelagat yang serupa dengan menggunakan Baris Gilir Surat Mati untuk menghentikan percubaan semula selepas beberapa percubaan tertentu.

Atas ialah kandungan terperinci Bagaimanakah Parameter Dasar Cuba Semula Google Pub/Sub Berkaitan dengan Pustaka `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