단일 토폴로지 기반의 Storm 파이프라인에서 무중단 배포 및 트래픽 관리의 어려움 발생
멀티 토폴로지 및 커스텀 스케줄러 도입, Kafka의 sticky assignor 적용으로 문제 해결
비용 절감, 성능 향상, 안정성 확보를 위해 데이터 처리 옵션 및 샘플링 기능 도입
기존 단일 토폴로지 방식은 배포 시 파이프라인 지연을 야기했다. 따라서 KafkaConsumer.assign을 subscribe 방식으로 변경하고, 커스텀 스케줄러를 도입하여 무중단 배포를 가능하게 했다. 구체적으로, sticky assignor를 적용하여 supervisor 중단 시에도 데이터 손실을 최소화했다.
멀티 토폴로지 환경에서 supervisor 중단 시 데이터 중복 문제가 발생했다. Sticky assignor를 적용하여 파티션 재할당 범위를 줄여 중복을 완화했다. 랜딩 존 내부에서 중복 제거 로직을 추가하여 데이터 무결성을 확보하고, 서비스 안정성을 높였다.
낮과 밤의 트래픽 차이를 고려하여 backpressure 기반의 비실시간 처리를 도입했다. 우선순위 및 mayday 기능을 통해 중요 로그의 지연을 최소화했다. OpenSearch 및 랜딩 존의 샘플링 비율을 조정하여 저장소 효율을 극대화하고, 비용 절감을 달성했다.