AI Briefing

외부 셀러: 외부 스파크성 트래픽으로부터 내부 시스템을 보호하는 방법 (1탄)

·2023.12.15 21:32

올리브영 외부 셀러 서비스가 비동기 처리와 서비스 분리를 통해 스파크성 트래픽으로부터 내부 시스템을 보호하는 아키텍처를 도입했다.

기존의 외부 셀러 서비스는 쇼핑몰 통합 관리 솔루션의 요청을 올리브영 내부 API와 동기(Sync) 방식으로 연결하여 처리했습니다. 이 방식은 내부 API의 응답이 지연될 경우 외부 셀러 서비스의 CPU 및 Memory 부하를 유발하고, 사용자에게 긴 대기 시간과 네트워크 오류를 경험하게 하는 한계가 있었습니다.

이를 해결하기 위해 올리브영은 비동기(Async) 이벤트 기반 아키텍처를 도입했습니다. 서비스의 역할을 **요청 담당(seller-external-api)**과 **생성 담당(seller-internal-api)**으로 분리하고, 중간에 AWS MSK를 도입하여 트래픽을 완충했습니다.

  • 요청 담당 서비스: 필수 Validation 후 이벤트를 MSK로 전달하여 사용자에게 빠른 응답을 제공합니다.
  • 생성 담당 서비스: MSK의 이벤트를 소비하여 내부 API에 순차적으로 전달하며, 네트워크 이슈 발생 시 Retry 로직을 통해 안정성을 확보합니다.

또한, 분산된 환경에서 데이터 처리 순서를 보장하기 위해 Partition Key를 지정하여 동일한 상품 요청이 항상 동일한 파티션에 적재되도록 설계했습니다.

이 요약은 원문 이해를 돕기 위한 큐레이션입니다. 저작권은 원저작자에게 있으며, 정확한 내용과 맥락은 원문을 확인하세요.

요약 오류, 출처 표기 문제, 삭제 요청은 문의 · 건의로 알려주세요.