Kafka 2

Kafka 대체 언제 써야할까(feat. MSA)

Kafka 특성Kafka는 단순한 메시지 큐가 아니라, 고성능 이벤트 스트리밍 플랫폼로그 기반 저장소: 메시지가 삭제되지 않고 디스크에 유지되어, 과거 데이터를 재처리할 수 있습니다.비동기 Pub/Sub 모델: 생산자와 소비자가 직접 연결되지 않아 느슨한 결합 구조를 유지합니다.수평 확장성: 파티션 단위로 데이터를 분산 저장하며, 고성능 처리에 적합합니다.복수 구독자 허용: 하나의 이벤트를 여러 시스템이 동시에 처리할 수 있습니다.재처리 가능성: 오프셋 관리만 잘하면 과거 이벤트를 반복 소비할 수 있습니다. REST API와 Kafka의 차이점두 방식은 모두 모듈 간 통신에 사용되지만, 근본적으로 지향하는 구조와 사용 방식이 다릅니다. Rest apiKafka통신 방식요청/응답 (동기)이벤트 스트리밍 (..

Kafka 2025.06.09

Kafka 메세지 처리에 대한 고민

배경이커머스 기반 주문 처리 시스템에서 Kafka를 도입하며, 대량 메시지 처리 환경에서도 안정적인 소비와 중복 방지, 장애 복구 구조를 어떻게 구현할지에 대한 실전 고민이 있었습니다.Kafka는 at-least-once 전달을 보장하지만, 이는 곧 중복 소비의 가능성이 있다는 뜻입니다. 실제 장애 상황에서 메시지가 두 번 처리되며 중복 주문이 발생하는 문제를 경험하게 되었고, 이를 계기로 구조 개선을 시작하게 되었습니다.문제 상황 1 - 중복 메세지 소비Kafka 컨슈머가 메시지를 처리 중 예외가 발생하면, 해당 오프셋이 커밋되지 않아 같은 메시지를 다시 소비합니다.단순히 보면 메시지를 놓치지 않기 위한 설계지만, 이로 인해 실제 주문이 두 번 처리되는 문제가 발생했습니다. 대응 1 – 수동 커밋 도입..

Kafka 2025.05.25