Maison  >  Article  >  développement back-end  >  Comment les paramètres RetryPolicy de Google Pub/Sub sont-ils liés à InitialInterval et MaxInterval de la bibliothèque ExponentialBackOff ?

Comment les paramètres RetryPolicy de Google Pub/Sub sont-ils liés à InitialInterval et MaxInterval de la bibliothèque ExponentialBackOff ?

DDD
DDDoriginal
2024-10-27 17:40:03659parcourir

How do Google Pub/Sub's RetryPolicy Parameters Relate to the ExponentialBackOff Library's InitialInterval and MaxInterval?

Interruption exponentielle dans RetryPolicy pour Google Pub/Sub

Énoncé du problème

RetryPolicy de Google Pub/Sub inclut les paramètres MinimumBackoff et MaximumBackoff. La documentation explique que ces valeurs sont utilisées pour un intervalle exponentiel en temps discret. Cependant, il ne fournit pas de détails sur leur relation avec InitialInterval et MaxInterval dans la bibliothèque ExponentialBackOff qui est souvent utilisée. ressemble à l'approche adoptée par la bibliothèque ExponentialBackOff :

RetryInterval est le délai actuel entre les tentatives, qui commence à la valeur de MinimumBackoff et est plafonné par MaximumBackoff.

randomized interval = RetryInterval * (random value in range [1 - RandomizationFactor, 1 + RandomizationFactor])
RandomizationFactor fournit une plage de randomisation autour de RetryInterval.
  • Observations tirées des exemples
  • Le programme de test fourni illustre l'effet de la variation des paramètres d'intervalle sur les délais réels entre les nacks de messages.

Avec MinimumBackoff et MaximumBackoff réglés respectivement sur 5 s et 60 s, les délais entre les nacks augmentent progressivement, atteignant 1 minute à la 6ème tentative. Cela suggère un doublement du RetryInterval après chaque tentative.

Avec MinimumBackoff et MaximumBackoff définis respectivement sur 1 s et 2 s, les délais entre les nacks oscillent autour de 3 s, indiquant un délai cohérent légèrement supérieur à la valeur MaximumBackoff.
  • Multiplier et MaxElapsedTime
  • Les paramètres Multiplier et MaxElapsedTime, tels que définis dans la bibliothèque ExponentialBackOff, n'ont pas d'équivalents directs dans la RetryPolicy de Google Pub/Sub.

Le Le multiplicateur n'est pas mentionné dans la documentation et les exemples ne suggèrent pas que le délai double à chaque fois.

Le MaxElapsedTime n'est pas explicitement pris en charge, mais la documentation indique que les tentatives se poursuivront indéfiniment si MaximumBackoff est défini sur 0.
  • Conclusion
  • Les paramètres MinimumBackoff et MaximumBackoff dans RetryPolicy de Google Pub/Sub se comportent de la même manière qu'InitialInterval et MaxInterval dans la bibliothèque ExponentialBackOff, en utilisant un mécanisme d'attente exponentielle aléatoire. Cependant, Google Pub/Sub ne prend pas explicitement en charge un multiplicateur ou un temps écoulé maximum pour les tentatives.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn