대기열 시스템 다양한 설계 방법 탐구 (feat. 레디스와 카프카를 이용한 O(1) 최적화)
이 글에 대해서항해 플러스 백엔드 5기 과정을 수료하며 대기열 기반의 예약 시스템을 구현했습니다. 본 글은 해당 프로젝트를 진행하며 고민하고 결정했던 내용을 다룹니다. 주요 내용으로는 은행 창구 방식과 놀이 공원 방식을 포함한 대기열 처리 메커니즘의 비교, 대기 토큰 관리 방법, 활성 토큰을 관리하는 다양한 방식(상태 기반, HashSet 기반, Counter 기반, Kafka 기반), 그리고 이를 개선하기 위한 방법을 다룹니다. 각 방식의 아키텍처, 처리 로직, 장단점을 상세히 설명하며, 최종적으로 Kafka, Redis를 활용한 개선 방안을 제시합니다. 소스 코드는 여기에서 보실 수 있습니다. 개요대기열 큐를 구현하는 방식으로 두 가지 메커니즘을 고려해볼 수 있다. 첫 번째는 은행 창구 방식이고 두 ..
2024. 8. 10.