티스토리 뷰
문제 상황 & 접근
- 하나의 API에서 Github API 4개와 블록체인을 접근하며 API Latency 대략 5s
바로 데이터를 응답하지 않아도 되는 API 이므로 비동기 처리 적용
적용
- producer - consumer 를 통해 비동기 처리 적용
- 에러 발생시 일정 횟수 재시도 이후 DeadLetter 처리
- 주요 에러는 OpenAPI Timeout, RateLimit 에러
- 여러 단계에 걸친 로직은 없었으며 실패한 Topic명, Payload, 시각 등을 DB에 저장
- 관리자 이메일로 관련 정보를 보내 확인할 수 있도록 구현
결론
- 부하테스트를 통해 평균 Latency를 확인하였다.
- API Latency 21.27배 개선
- 데드레터를 바로 확인할 수 있으며 DB에 저장된 데드레터 정보 확인으로 장애 상황에 대응 가능
동기 처리 [509.24ms]
비동기 처리 [23.94ms 21.27배 개선]
'프로젝트 탐구 > GitRank' 카테고리의 다른 글
Github API의 느린 응답 이슈 개선을 위한 스케줄링을 통한 DB 업데이트 (0) | 2024.03.25 |
---|---|
Redis Sorted Set으로 기존 DB 페이징 기반 랭킹 시스템 개선 (0) | 2024.03.25 |
DB 중복 insert 동시성 이슈 개선을 위한 Lock 전략 수립 (0) | 2024.03.25 |