본문 바로가기

Kafka5

Kafka Transactional Producer Kafka 기반 이벤트 시스템은 확장성과 유연성에서 강력한 장점을 갖습니다.하지만, 단일 프로듀서-컨슈머 구조를 벗어나 DB, 외부 API, 캐시 등 다양한 컴포넌트가 연동되는 구조로 확장되면, 정합성 문제가 발생합니다. 흔하게 발생되는 예시는 다음과 같습니다.Kafka에 메시지를 전송합니다.동시에 DB에 상태를 반영합니다.Kafka는 성공했지만, DB 저장은 실패합니다.3번 시점부터 Kafka 컨슈머는 메시지를 소비해서 처리를 계속하지만, 실제 상태를 보관해야 할 DB에는 반영이 되지 않습니다.해당 이슈는 치명적입니다. 특히 중복 처리나 상태 기반 로직이 핵심인 시스템에서는 치명적인 장애로 이어질 수 있습니다. Kafka로 해결하는 방법Kafka는 0.11버전부터 Transactional Produc.. 2025. 4. 22.
Dead Letter Topic Kafka Dead Letter TopicKafka를 사용하는 이유 중 하나는 대규모 비동기 이벤트 처리에 적합하다는 점입니다. 하지만 "시스템이 안정적이기 위해선 실패한 메시지를 어떻게 처리할 것인가?"에 대한 설계가 반드시 필요합니다.이를 위해 사용하는 것이 바로 DLT(Dead Letter Topic)입니다. Dead Letter TopicDead Letter Topic은 Kafka Consumer가 메시지를 처리하는 도중 예외가 발생했을 때, 해당 메시지를 따로 저장하는 전용 토픽입니다.다시 말해, "이 메시지는 정상 처리할 수 없으니 따로 보관하겠습니다."라는 백업 공간이라고 볼 수 있습니다. 예를 들어 상품 재고를 차감하는 Consumer가 있는데, 특정 메시지에 포함된 productId가 D.. 2025. 4. 21.
Kafka 재고 차감 방식 대규모 트래픽을 처리하는 이커머스 시스템에서는 재고 관리를 신뢰성과 확장성 측면에서 고민해야 합니다. 특히 Kafka와 같은 메시징 시스템을 활용해 비동기 재고 처리를 설계할 경우, 언제 재고를 차감할지를 결정하는 전략이 중요합니다. Kafka를 활용한 재고 차감 방식에는 사전 차감 방식과 사후 차감 방식 두 가지가 존재합니다.각각 어떠한 구조와 장단점을 갖고 있을까요? 사전 차감 방식사전 차감 방식은 결제 이전에 먼저 재고를 차감하는 구조입니다.주문 요청 시점에 Redis를 활용해 실시간으로 재고를 차감하고, Kafka를 통해 차감 이벤트를 발행한 뒤 상품 서버가 이 이벤트를 소비해 최종적으로 DB에 반영합니다. 사전 차감 방식의 흐름사전 차감 방식의 흐름은 아래와 같습니다.(단, 재고를 관리하는 서버.. 2025. 4. 21.
Kafka 사용 사례 Kafka는 언제 사용할까요? 실시간 로그 처리Kafka를 활용하면 웹 서버, 애플리케이션 서버, DB 서버 등 여러 시스템에서 발생하는 로그를 중앙에서 수집하고 관리할 수 있습니다. 이를 통해 대규모 시스템에서도 로그 데이터를 효율적으로 처리할 수 있으며, 장애나 성능 문제를 신속하게 파악할 수 있는 기반이 마련됩니다. 실제 활용 사례로는, 웹 애플리케이션에서 오류 로그와 성능 메트릭을 수집해 문제를 조기에 인식하거나, 장애 발생 시 빠르게 대응할 수 있는 구조를 구성하는 데 Kafka가 사용됩니다. 특히 DevOps 환경에서는 인프라 상태를 실시간으로 모니터링하고, 문제가 생기면 자동으로 대응할 수 있는 시스템을 구축하는 데 중요한 역할을 합니다. 데이터 스트리밍 시스템 Kafka는 데이터 스트리밍.. 2025. 4. 16.
Kafka랑 친해지기 카프카란 무엇일까요..? Kafka카프카는 분산 메시징 시스템으로, 실시간 데이터 스트리밍, 로그 수집 및 처리, 이벤트 기반 아키텍처 구성 등에 주로 사용합니다. Kafka의 기원Kafka는 2011년 LinkedIn에서 시작되어 오픈소스로 공개된 분산 메시징 시스템입니다.대규모 실시간 로그 수집과 데이터 스트리밍 문제를 해결하기 위해 개발되었습니다. Kafka 핵심 특징Kafka는 확장성, 내구성, 높은 처리량을 모두 갖춘 분산 메시징 시스템입니다.수평 확장이 용이한 구조로 브로커를 손쉽게 추가할 수 있어서 확장성이 뛰어나고, 메시지를 디스크에 저장하고 복제(Replication) 기능을 통해 장애 발생 시에도 데이터를 안전하게 보존할 수 있어 내구성도 우수합니다.또한 메시지를 묶어서 처리하는 배치 .. 2025. 3. 26.