Kafka Streams 윈도우 도입으로 정산 시스템 안정성 확보!
by DD
6개월 전
조회수 19
스파이크성 트래픽 처리를 위해 Kafka Streams 윈도우를 도입하여 데이터 집계를 수행함
데이터 생성 시간과 Kafka 발행 시간 불일치 문제를 TimestampExtractor로 해결함
더미 이벤트 발행을 통해 윈도우 닫힘 문제를 해결하고 정산 시스템 안정성을 확보함
TimestampExtractor를 활용한 데이터 정합성 확보
Kafka Streams는 기본적으로 Kafka 발행 시간을 기준으로 윈도우를 할당한다. 따라서 데이터 생성 시간과 발행 시간의 불일치로 인한 문제를 해결하기 위해 TimestampExtractor를 사용한다. 구체적으로, 이벤트 시간을 데이터 생성 시간으로 재정의하여 정산 데이터의 정확성을 보장한다.
더미 이벤트 주입을 통한 윈도우 닫힘 문제 해결
Kafka Streams에서 윈도우는 스트림 시간이 윈도우 종료 시점과 유예 시간을 모두 지나야 닫힌다. 따라서, 이벤트가 없는 경우 더미 이벤트를 외부에서 주입하여 스트림 시간을 강제로 전진시킨다. 결과적으로, 윈도우 닫힘을 보장하고 정산 결과의 일관성을 유지한다.
파티션별 더미 이벤트 발행의 중요성
Kafka Streams의 스트림 시간은 파티션별로 독립적으로 관리된다. 따라서, 모든 더미 이벤트의 키값이 같으면 한 파티션에서만 시간이 흐르는 문제가 발생한다. 파티션별 키값을 다르게 설정하거나, 파티션 번호를 직접 지정하여 각 파티션의 윈도우가 독립적으로 닫히도록 설계해야 한다.
댓글 0
첫 번째 댓글을 남겨보세요!