외부 셀러: 외부 스파크성 트래픽으로부터 내부 시스템을 보호하는 방법 (1탄)
·2023.12.15 21:32
핵심 내용
올리브영 외부 셀러 서비스가 비동기 처리와 서비스 분리를 통해 스파크성 트래픽으로부터 내부 시스템을 보호하는 아키텍처를 도입했다.
1 / 2
자세히 보기
기존의 외부 셀러 서비스는 쇼핑몰 통합 관리 솔루션의 요청을 올리브영 내부 API와 동기(Sync) 방식으로 연결하여 처리했습니다. 이 방식은 내부 API의 응답이 지연될 경우 외부 셀러 서비스의 CPU 및 Memory 부하를 유발하고, 사용자에게 긴 대기 시간과 네트워크 오류를 경험하게 하는 한계가 있었습니다.
이를 해결하기 위해 올리브영은 비동기(Async) 이벤트 기반 아키텍처를 도입했습니다. 서비스의 역할을 **요청 담당(seller-external-api)**과 **생성 담당(seller-internal-api)**으로 분리하고, 중간에 AWS MSK를 도입하여 트래픽을 완충했습니다.
- 요청 담당 서비스: 필수 Validation 후 이벤트를 MSK로 전달하여 사용자에게 빠른 응답을 제공합니다.
- 생성 담당 서비스: MSK의 이벤트를 소비하여 내부 API에 순차적으로 전달하며, 네트워크 이슈 발생 시 Retry 로직을 통해 안정성을 확보합니다.
또한, 분산된 환경에서 데이터 처리 순서를 보장하기 위해 Partition Key를 지정하여 동일한 상품 요청이 항상 동일한 파티션에 적재되도록 설계했습니다.
이 한국어 요약은 AI가 자동으로 만들었습니다. 원문의 주장과 맥락은 원문에서 확인해 주세요. 저작권은 원저작자에게 있습니다.