Infra/Apache Kafka

    Kafka consumer API

    컨슈머 API package com.example.kafkastudy.consumer; import org.apache.kafka.clients.consumer.ConsumerConfig; import org.apache.kafka.clients.consumer.ConsumerRecord; import org.apache.kafka.clients.consumer.ConsumerRecords; import org.apache.kafka.clients.consumer.KafkaConsumer; import org.apache.kafka.common.serialization.StringDeserializer; import org.slf4j.Logger; import org.slf4j.LoggerFactory;..

    kafka producer API

    카프카 클라이언트 카프카 클라이언트 라이브러리를 사용하면 프로듀서 컨슈머 어드민 클라이언트로 카프카 클러스터에 명령을 내리거나 데이터를 송수신할 수 있다. 프로듀서 API 프로듀서 어플리케이션은 카프카에 필요한 데이터를 선언하고 브로커의 특정 토픽의 파티션에 직접 전송(직접 통신)한다. 프로듀서는 데이터를 직렬화하여 카프카 브로커로 보내기 때문에 자바에서 선언 가능한 모든 형태를 브로커로 전송할 수 있다. 💡 여기서 직렬화란 자바 또는 외부 시스템에서 사용 가능하도록 바이트 형태로 데이터를 변환하는 기술을 말한다. 인텔리제이에서 개발하기 위해선 일단 카프카 클라이언트 라이브러리를 gradle에 추가해야한다. plugins { id 'org.springframework.boot' version '2.7.3..

    kafka의 기본 개념 정리

    카프카의 기본 개념 카프카 브로커란? 카프카 클라이언트와 데이터를 주고받기 위해 사용하는 주체이자, 데이터를 분산 저장하여 장애가 발생하더라도 안전하게 사용할 수 있도록 도와주는 어플리케이션 보통 하나의 서버에 한 개의 카프카 브로커 프로세스가 실행되며 데이터를 안전하게 보관하기 위해 3대 이상의 브로커 서버를 1개의 클러스터로 묶어서 운영 데이터 저장, 전송 카프카 브로커는 프로듀서가 요청한 토픽의 파티션에 데이터를 저장하고 컨슈머가 요청하면 파티션에 저장된 데이터를 전달하는데 데이터는 파일 시스템에 저장된다. 파일 시스템으로 저장하다보면 다루기 편하긴 하지만 지속적으로 입출력할 경우 메모리에 올려 사용하는 것보다 속도가 현저히 느린데 카프카는 여기서 페이지 캐시를 사용하여 디스크 입출력 속도를 높여 ..

    Kafka mac에서 설치 및 테스트

    들어가기 압서 mac에서 쉽게 homebrew를 이용해서 설치할 수 있는데 계속 zookeeper 오류가 뜨고 그래서 저는 공식 문서에 있는 quick start 를 참고하면서 진행했습니다! 그리고 참고로 이후 최신 버전에는 zookeeper가 deprecated된다고 합니다! https://www.infoworld.com/article/3660073/why-apache-kafka-is-dropping-zookeeper-for-kraft.html Why Apache Kafka is dropping ZooKeeper Replacing ZooKeeper with internally managed metadata will improve scalability and management, according to ..

    Kafka의 등장 배경 및 특징

    카프카의 등장 배경 링크드인에서 초기에 파편화된 데이터 수집 및 분배를 처리하기 위해 데이터를 생성하는 source application과 데이터가 최종 적재되는 target application을 단방향 연결을 함 ⬇️ 시간이 갈수록 애플리케이션의 개수가 늘어나고 데이터 전송 파이프라인이 늘어나기 시작하면서 아키텍쳐가 복잡해짐 ⬇️ 이는 서비스를 운영하는데 치명적이므로 링크드인 데이터팀은 다양한 데이터프레임워크와 오픈소스를 아키텍쳐에 녹여내어 개선하기 시작하지만 데이터 파이프라인의 복잡도를 개선하기엔 어려움을 겪음 ⬇️ 중앙집중화 시스템인 카프카라는 신규 시스템을 만들어내고 카프카는 기업의 대용량 데이터를 수집하고 사용자들이 이를 실시간 스트림으로 소비할 수 있게 해줌 카프카의 등장 카프카는 이렇게 소..