Apache Kafka (6) - Extended API & Case Study
·
Infra/Kafka
Apache Kafka Series - Learn Apache Kafka for Beginners v3를 수강하며 기록한 내용입니다.Kafka의 확장 기능에 대해 알아보며,이를 어떻게 활용하는 게 좋을 지 몇 가지의 케이스를 통해 알아보도록 한다.Kafka Connect외부 소스와의 연동 : 카프카-카프카 상호연결외부 시스템과 Kafka 간의 데이터 수집 / 전송• Source Connectors: 외부 시스템에서 데이터를 읽어와 Kafka에 넣음.• Sink Connectors: Kafka에서 데이터를 읽어와 외부 시스템에 씀.• Converters: 데이터를 Kafka와 외부 시스템 간에 변환(JSON, Avro 등).• Transforms (SMT): 스트림 데이터를 실시간으로 수정.Kafka St..
Apache Kafka (5) - Consumer Configuration
·
Infra/Kafka
Apache Kafka Series - Learn Apache Kafka for Beginners v3를 수강하며 기록한 내용입니다.enable.auto.commitJava Consumer Api에서 오프셋은 정기적으로 커밋된다디폴트로 at-least once 전략 사용오프셋은 .poll()을 호출했을 때와 auto.commit,interval.ms 이 경과되었을 때 커밋된다auto.commit.interval.ms 는 지정하지 않는다면 5000mspoll()을 부르기 전에 메시지가 확실히 처리되도록 보장할 것그렇지 않은 경우에는 enable.auto.commit을 비활성화하고 대부분의 처리를 별도의 스레드로 옮겨야 함그리고 적절한 오프셋을 수동으로 설정하여 .commitSync() 또는 .commitA..
Apache Kafka (4) - Producer
·
Infra/Kafka
Apache Kafka Series - Learn Apache Kafka for Beginners v3를 수강하며 기록한 내용입니다.ACKS정상적으로 메시지를 수신했는지에 대한 플래그ACK = 13.0 버전 미만은 default"리더"로부터 ACK를 수신하면 제대로 Write가 수행되었다고 판단한다만일 리더가 다운된다면, replica들이 제대로 메시지를 복제하지 않았을 가능성이 있다.ACK가 수신되지 않았다면 producer는 재시도ACK = all(-1)3.0 버전 이후부터 default모든 ISR(in-sync Replica)에서 메시지가 수신됨min.insync.replicasACKS=all로 메시지를 보낼 때 최소 동기화된 파티션 복제본(리더 포함)의 수이는 브로커에 기입min.insync.re..
Apache Kafka (3) - Java
·
Infra/Kafka
Apache Kafka Series - Learn Apache Kafka for Beginners v3를 수강하며 기록한 내용입니다.Settingsjdk 11 필요gradle dependency 추가 implementation 'org.apache.kafka:kafka-clients:3.1.0'Producepublic static void main(String[] args) { log.info("Hello World!"); Properties properties = new Properties(); properties.setProperty("bootstrap.servers", "127.0.0.1:9092"); properties.setProperty("key.seria..
Apache Kafka (2) - 설치
·
Infra/Kafka
Apache Kafka Series - Learn Apache Kafka for Beginners v3를 수강하며 기록한 내용입니다. [MAC M3 기준으로 설치를 진행하였습니다]Condukor 설치카프카 관리 툴(시각화, 모니터링)무료 버전은 개인/학업용으로만 사용 가능설치https://conduktor.io/get-startedcurl -L https://releases.conduktor.io/quick-start -o docker-compose.yml && docker compose upKafka 설치Zookeeper이 포함된 버전brew를 사용하여 설치brew install kafkakafka의 위치는 /opt/homebrew/bin 가 된다.Zookeeper 시작/opt/homebrew/bin..
Apache Kafka (1)
·
Infra/Kafka
Apache Kafka Series - Learn Apache Kafka for Beginners v3를 수강하며 기록한 내용입니다. 도입 이유소스 시스템, 타켓 시스템이 확장됨에 따라 중재 시스템의 필요도가 높아짐장점오픈소스 프로젝트좋은 성능을 보여줌내결함성시스템 간 결합도를 낮출 수 있다.사용처메시징활동 추적메트릭, 로그 수집Topics특정 데이터의 스트림제약 없는 테이블과 같다이름으로 토픽을 선정함어느 종류의 메시지라도 괜찮다연속된 메시지는 "Stream"이라 칭함쿼리는 할 수 없고, Producer가 쓰면(publish), Consumer가 읽을 수 있다.Partition토픽은 파티션으로 나뉜다.파티션에 데이터를 쓸 수록 Offset(index와 유사)이 증가파티션에 쓰인 데이터는 불변이며, a..