Skip to content

비동기 처리를 위한 Kafka 도입과 dlt 처리

김승진 edited this page Mar 18, 2024 · 3 revisions

문제 상황 & 접근


  • 하나의 API에서 Github API 4개와 블록체인을 접근하며 API Latency 대략 5s

바로 데이터를 응답하지 않아도 되는 API 이므로 비동기 처리 적용

적용


  • producer - consumer 를 통해 비동기 처리 적용

image

  • 에러 발생시 일정 횟수 재시도 이후 DeadLetter 처리
    • 주요 에러는 OpenAPI Timeout, RateLimit 에러
    • 여러 단계에 걸친 로직은 없었으며 실패한 Topic명, Payload, 시각 등을 DB에 저장
  • 관리자 이메일로 관련 정보를 보내 확인할 수 있도록 구현

image

결론


  • 부하테스트를 통해 평균 Latency를 확인하였다.
  • API Latency 21.27배 개선
  • 데드레터를 바로 확인할 수 있으며 DB에 저장된 데드레터 정보 확인으로 장애 상황에 대응 가능

동기 처리 [509.24ms]

image

비동기 처리 [23.94ms 21.27배 개선]

image