순서대로, 한 번만, 빠르게
백엔드
순서대로, 한 번만, 빠르게
두줄요약
Airbridge는 Kafka 이벤트 처리에서 마이크로 배치 병목을 줄이기 위해 Differential 구조를 도입했습니다. 순서 보장과 중복 방지를 유지하면서 처리 속도를 10배 이상 높였습니다.
문제 상황
- Airbridge의 이벤트 처리에서 순서 보장과 중복 없는 처리를 유지하면서 처리 속도까지 높여야 하는 과제
- 마이크로 배치 방식에서는 느린 이벤트 하나가 전체 배치를 막아 서버 증설 효과가 작았던 병목
원인 분석
- 워커별 처리 속도 차이와 특정 파티션에 트래픽이 몰리는 핫 파티션으로 인한 대기 시간 누적
- 배치 단위 처리로 인해 앞선 이벤트 종류가 끝날 때까지 다른 워커가 유휴 상태가 되는 구조
해결 방법
- 하나의 Kafka topic을 여러 Consumer가 읽고, 앞선 Consumer의 처리 위치를 추월하지 않도록 안전거리를 두는 Differential 구조 도입
- 버퍼 재사용과 Normal Mode, Polling Mode 전환으로 메시지 낭비를 줄이고 backpressure를 완화
- checkpoint 기반 EventProcessor와 CommitManager로 순서, 중복 방지, offset commit 안정성을 함께 관리
