불안정한 타겟 요청 시 서버 요청 방법

2023. 6. 14. 17:11개발지식

상황

크롤링 작업 시 종종 서버 상태가 응답 속도가 느리거나, 요청에 대한 대답을 못하고 500에러를 내보내는 타켓 서버가 존재한다.

그래서 크롤링 진행 시 요청 시간을 길게 잡고 가야하는데 무턱대고 길게 잡으면 크롤링 작업 시간이 배로 늘어나게 될수있다.

그래서 Exponential backoff 전략을 사용한다.

 

Exponential backoff 자세한 설명이다.

 

Exponential backoff - Wikipedia

From Wikipedia, the free encyclopedia Rate-seeking algorithm Look up backoff in Wiktionary, the free dictionary. Exponential backoff is an algorithm that uses feedback to multiplicatively decrease the rate of some process, in order to gradually find an acc

en.wikipedia.org

 

구현 방법

서버 요청을 진행 하고 이후 실패 시
요청 성공 할 때 까지 요청 시간의 2배수로 올려 요청시간을 늘린다.

요청 성공 시

요청에 성공하면 초기에 전송했던 요청 시간을 돌려둔다.

 

ex) 1000ms 에 한번 요청을 진행 한다.

ex) 1000ms => 2000ms => 4000ms => 6000ms => 8000ms

이유

타겟 서버가 불안정 하여 계속되는 요청으로 타켓서버를 무력화 할 수 있어 공격으로 판단이 되어 막히는 위험성이 있고
안정적으로 데이터를 가져오기 위함이다.

 

 

728x90
반응형