외부 트래픽, 이제 걱정 끝! 비동기 아키텍처로 시스템을 보호하세요.
by DD
2년 전
조회수 2
동기 방식의 API 호출로 인해 외부 셀러 서비스의 CPU/Memory 사용량 증가 및 응답 지연 발생
비동기 방식 및 AWS MSK 기반의 이벤트 기반 아키텍처로 전환하여 스파이크 트래픽에 대응
Partition Key를 활용한 Kafka 메시지 처리 순서 보장, 사용자 경험 개선 및 시스템 안정성 확보
비동기 아키텍처 설계: 핵심 원리
기존 동기 방식은 외부 셀러 서비스의 CPU/Memory 사용량 증가를 야기했다. 비동기 아키텍처로 전환하여 seller-external-api와 seller-internal-api를 분리하고, AWS MSK를 통해 이벤트 기반 통신을 구현했다. 따라서 스파이크 트래픽에도 유연하게 대응할 수 있게 되었다.
Kafka Partition Key: 순서 보장의 핵심
Kafka에서 Partition Key를 지정하지 않으면 Round Robin 방식으로 메시지가 분배된다. 상품 ID를 Partition Key로 지정하여 동일 상품 관련 메시지가 동일 파티션에 적재되도록 했다. 결과적으로 메시지 처리 순서 보장 및 데이터 일관성을 확보했다.
아키텍처 개선 효과: 트래픽 대응력 강화
비동기 처리 및 Queue 도입으로 외부 스파이크 트래픽으로부터 내부 시스템을 보호한다. 서버 분리를 통해 리소스 사용량을 모니터링하고, 재시도 로직을 통해 사용자 경험을 개선했다. 따라서 서비스 안정성을 높이고 장애 복구 능력을 향상시켰다.