kafka

    Kafka Consumer의 commit을 제어하는 enable.auto.commit과 AckMode

    우리가 Kafka Consumer의 commit을 제어한다고 했을 때 보통 2가지 설정값을 떠올린다. enable.auto.commit과 AckMode다. 그렇다면 enable.auto.commit도 Consumer의 commit을 제어하는 설정값이고, AckMode도 Consumer의 commit을 제어하는데 이 둘이 따로 관리되는 걸까?  일단 consumer가 offset을 commit 하는 것은 Kafka의 내부 Topic인 __consumer_offsets에 저장하는 행위이며, consumer는 이 offset 값을 참조해서 다음에 처리한 메시지를 읽어온다는 것이 기본 개념이다. Commit에는 자동커밋과 수동커밋이 있는데 enable.auto.commit으로 Kafka 클라이언트의 커밋방식 제..

    [Kafka] 심화 개념 및 이해

    Producer Acks, Batch, Page Cache, FlushProducer Acks ParameterProducer는 Kafka가 메시지를 잘 받았는지 어떻게 알까?이를 확인하기 위해 Producer Acks라는 Producer Parameter를 쓴다. (Network의 그 ack 개념과 유사)Kafka는 메시지를 받으면 잘 받았다는 의미의 acks를 보내고 Producer는 acks가 와야 다음 메시지를 보낸다. acks = 0 : ack가 필요하지 않음. 이 수준은 자주 사용되지 않음. 메시지 손실이 다소 있더라도 빠르게 메시지를 보내야 하는 경우에 사용acks = 1 : (default 값) Leader가 메시지를 수신하면 ack를 보냄. Leader가 Producer에게 ACK를 보낸..

    [Kafka] 기본 개념 및 이해

    Apache Kafka란?이벤트 스트리밍 플랫폼실시간으로 흐르는 이벤트 스트림을 받아주고 이벤트를 필요로 하는 곳으로 이벤트를 전달한다.이벤트? 비즈니스에서 일어나는 모든 일(데이터)을 의미ex) 웹사이트에서 뭔가 클릭하는것. 돈을 송금하는 것 등 이벤트는 bigdata의 특징을 가짐 -> 비즈니스의 모든 영역에서 광범위하게 발생하기 때문이벤트 스트림은 연속적인 많은 이벤트들의 흐름을 의미 이렇게 많은 이벤트들을 처리하기 위해 LinkedIn에서 개발된 것이 Apache Kafka 3가지 특징1. 이벤트 스트림을 안전하게 전송 (publish & Subscribe 기능)2. 이벤트 스트림을 디스크에 저장함 (아파치 카프카 이전의 솔루션들과의 차이점. Write to Disk)3. 이벤트 스트림을 분석 및..