logo

아이템 bulk 개봉과 API 서버의 자체 로드밸런싱

* 관련 기술 스택이 없습니다
emoji

• 아이템 개봉 확률 검증을 위해 100만 건의 아이템을 한 번에 개봉하는 테스트를 진행했으나, 메서드의 반복 호출과 MongoDB와의 상호작용으로 인해 부하가 심해져 chunk 단위로 나누어 순차 처리하는 방법을 시도했지만, 트랜잭션 에러와 서버 부하 문제로 어려움을 겪었습니다.
• 여러 서버가 처리에 참여하도록 클라이언트에서 chunk 단위로 반복 요청을 보내는 방법을 테스트했으나, 특정 서버에 부하가 집중되는 문제가 발생했고, 이는 API Gateway의 RabbitMQ RPC 통신의 prefetch size 설정 때문임을 확인했습니다.
• API 서버에서 반복 요청을 통해 로드밸런싱을 수행하는 구조를 설계하여, 기존 인프라나 설정을 수정하지 않고 부하 분산 문제를 해결했습니다. 이를 위해 RPC 기반의 요청 처리와 특정 알고리즘을 사용하여 최근에 처리한 서버를 제외하고 요청을 분산시켰습니다.
• 테스트 결과, 3대의 서버 환경에서 100만 건의 요청을 9분 내로 처리할 수 있었으며, 이는 새로운 부하 분산 구조를 도입하여 제약이 많은 환경에서도 효과적으로 문제를 해결한 사례로 의미가 있습니다.

thumbnail
북마크
공유하기
신고하기
13분 분량
조회수 286
profile-imageohksj77
한 달 전
Copyright © 2025. Codenary All Rights Reserved.