올리브영 OMS 프로젝트에서 Kafka를 활용하여 물류 시스템을 전면 개편함
Producer/Consumer 간 통신 문제로 인한 메시지 중복/유실 케이스 분석
acks=all, enable.idempotence=true 설정 및 CooperativeSticky 전략으로 안정성 확보
Producer와 Broker 간, Consumer와 Broker 간 통신 과정에서 메시지 유실 및 중복이 발생한다. acks=all 설정과 enable.idempotence=true 옵션을 통해 메시지 중복을 방지한다. 따라서, 안정적인 메시지 처리를 위해 세심한 설정이 필요하다.
Kafka의 Exactly-once 보장은 설정 난이도가 높지만, At least once 방식보다 높은 안정성을 제공한다. 설정은 을 막고, 의 설정을 통해 중복 Consume을 방지한다. 반면, 전략은 문제를 해결한다.
DLQ(Dead Letter Queue)를 활용하여 오류 데이터를 관리하고, AWS Kinesis Data Firehose를 통해 S3로 자동 백업한다. 구체적으로, Lambda 함수를 사용하여 Xlsx 파일로 변환하여 관리한다. 따라서, 데이터 유실 방지 및 오류 분석에 효과적이다.