RetryPolicy의 지수 백오프
Google Pub/Sub의 RetryPolicy에 도입된 지수 백오프 기능은 github에서 정의한 ExponentialBackOff에 설명된 개념을 반영합니다. com/cenkalti/backoff에서 언급하셨습니다.
최소 및 최대 백오프
예, 맞습니다. pubsub.RetryPolicy의 MinimumBackoff 및 MaximumBackoff 매개변수는 각각 github.com/cenkalti/backoff의 InitialInterval 및 MaxInterval에 해당합니다.
무작위화
Cloud Pub/Sub는 간격을 무작위화하기 위해 github.com과 동일한 공식을 사용합니다. /cenkalti/backoff:
randomized interval = RetryInterval * (random value in range [1 - RandomizationFactor, 1 + RandomizationFactor])
RandomizationFactor는 pubsub.RetryPolicy에서 기본적으로 0.15로 설정됩니다.
승수 및 MaxElapsedTime
github과 달리 .com/cenkalti/backoff, pubsub.RetryPolicy에는 각 실패 후 RetryInterval을 두 배로 늘리는 Multiplier와 동일한 기능이 없습니다. 대신 Pub/Sub 재시도 지연은 RandomizationFactor에 의해 결정된 고정 비율로 기하급수적으로 증가합니다.
또한 pubsub.RetryPolicy에는 명시적인 MaxElapsedTime이 없습니다. 그러나 Pub/Sub는 구독을 처리하는 go-routine의 수명에 따라 재시도가 효과적으로 제한되는 go-routine 기반 재시도 메커니즘을 구현합니다.
예
귀하의 실험은 지수 백오프 동작을 정확하게 보여줍니다. 백오프 간격(5초~60초)이 길수록 재시도 빈도가 낮아지고, 간격(1~2초)이 짧을수록 재시도 빈도가 높아집니다. 간격의 변동은 무작위 요인으로 인해 발생합니다.
위 내용은 Google Pub/Sub는 github.com/cenkalti/backoff와 비교하여 RetryPolicy에서 지수 백오프를 어떻게 구현하나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!