retry

    [F.Y.R] Jitter? ( Retry의 전략 )

    맡고 있는 프로젝트에서 다른 서버와 통신을 하는 코드를 보던 중, 통신을 하는 서버에서 동시성 이슈로 재시도를 원하는 에러코드가 내려왔고, 이에 잠깐의 sleep을 한 후에 재시도하는 것을 볼 수 있었다. Retry? MSA구조에서는 서로 다른 서버와 통신을 할 일이 많다. 그렇기 때문에 서로 다른 서버와 통신할 때 실패율을 줄이는 것이 중요하며, 호출 재시도를 하며 실패율을 줄일 수 있다. 보통 Sleep을 해주는 이유는 동시에 요청이 왔을 때, 바로 재시도를 하게 된다면 동시성 이슈에 있어서 성공률은 떨어지기 때문이다. 그래서 보통은 Exponential Backoff Algorithm ( 백오프 ) 를 사용해야하는 걸로 알고 있었다. 1번째 재시도 : 1초 -> 2번째 재시도 : 2초 -> 3번째 ..