데이터 손실 없이 속도 제한이 있는 API를 위한 폴링 파이프라인 설계
다른 사람의 API에서 데이터를 수집하는 모든 시스템은 결국 폴러(poller)를 작성하게 됩니다. 처음에는 cron 작업에서 15줄로 시작합니다. 엔드포인트를 호출하고, 마지막 타임스탬프와 비교하고, 새로운 것을 삽입합니다. 즉시 작동하며, 이것이 문제입니다. 레코드를 놓치기 시작한 지 오래되었음에도 계속 작동하는 것처럼 보이기 때문입니다.저는 공개 토론 API를 지속적으로 폴링하는 수집 계층을 유지하고 있으며, "폴러가 실행 중"이라는 상태와 "폴러가 정확하다"는 상태 사이의 격차를 닫는 데 예상보다 훨씬 더 오랜 시간이 걸렸습니다. 이어지는 내용은 실제 데이터 손실을 야기한 네 가지 실패 모드와 이를 해결한 패턴입니다.