외부 트래픽, 이제 걱정 끝! 비동기 아키텍처로 시스템을 보호하세요.

by DD
2년 전
조회수 2

동기 방식의 API 호출로 인해 외부 셀러 서비스CPU/Memory 사용량 증가 및 응답 지연 발생

비동기 방식AWS MSK 기반의 이벤트 기반 아키텍처로 전환하여 스파이크 트래픽에 대응

Partition Key를 활용한 Kafka 메시지 처리 순서 보장, 사용자 경험 개선시스템 안정성 확보

비동기 아키텍처 설계: 핵심 원리

기존 동기 방식외부 셀러 서비스CPU/Memory 사용량 증가를 야기했다. 비동기 아키텍처로 전환하여 seller-external-apiseller-internal-api를 분리하고, AWS MSK를 통해 이벤트 기반 통신을 구현했다. 따라서 스파이크 트래픽에도 유연하게 대응할 수 있게 되었다.

Kafka Partition Key: 순서 보장의 핵심

Kafka에서 Partition Key를 지정하지 않으면 Round Robin 방식으로 메시지가 분배된다. 상품 IDPartition Key로 지정하여 동일 상품 관련 메시지가 동일 파티션에 적재되도록 했다. 결과적으로 메시지 처리 순서 보장데이터 일관성을 확보했다.

아키텍처 개선 효과: 트래픽 대응력 강화

비동기 처리Queue 도입으로 외부 스파이크 트래픽으로부터 내부 시스템을 보호한다. 서버 분리를 통해 리소스 사용량을 모니터링하고, 재시도 로직을 통해 사용자 경험을 개선했다. 따라서 서비스 안정성을 높이고 장애 복구 능력을 향상시켰다.

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