Kafka의 5분 타임아웃 문제로 중복 엑셀 발송 이슈 발생
RDB 기반 Task Queue 아키텍처로 전환하여 작업 유실 방지 및 안정성 확보
Heartbeat 갱신, 재시도 처리, 분산 락 적용으로 시스템 복잡도 감소
기존 Kafka 기반 엑셀 생성 시스템은 Consumer 타임아웃으로 인한 중복 메시지 처리 문제를 겪었다. 구체적으로, 30분 이상 소요되는 작업이 Kafka 리밸런싱을 유발하여 문제가 발생했다. 따라서 RDB 기반 Task Queue로 전환하여 작업 유실 방지 및 안정성을 확보했다.
는 갱신, , 을 활용하여 안정성을 높였다. 구체적으로, 는 3초마다 을 조회하고, 으로 작업을 선점한다. 따라서 시에도 가 가능하다.
Kafka는 빠른 처리량에 강점, RDB Task Queue는 장시간 작업과 상태 관리에 유리하다. Kafka는 Consumer 장애 시 데이터 유실 위험이 있었지만, RDB Task Queue는 작업 유실 방지를 위해 RDB에 작업 상태를 저장한다. 따라서 트랜잭션 특성에 맞는 시스템 선택이 중요하다.