Back-End/Kafka 6

[Kafka] 기초3 - 컨슈머 기본 동작과 예시

❑ 컨슈머의 기본 동작 컨슈머는 프로듀서가 카프카의 토픽으로 전송한 메시지를 가져오는 역할을 한다. 단순히 메시지만 가져오는 것으로 보일 수 있으나, 내부적으로는 컨슈머 그룹, 리밸런싱 등의 동작을 수행한다. 컨슈머 그룹(Consumer Group) 컨슈머 그룹은 하나 이상의 컨슈머들이 모여 있는 그룹을 의미하고, 컨슈머는 반드시 컨슈머 그룹에 속하게 된다. 그룹 내의 컨슈머들은 서로의 정보를 공유한다. 예를 들어, 특정 컨슈머에 문제가 생겨 종료된다면, 그룹 내 다른 컨슈머가 대신해 토픽의 파티션을 컨슘한다. 컨슈머 그룹은 파티션의 리더에게 토픽에 저장된 메시지를 가져오기 위한 요청을 보낸다. 필수는 아니지만, 파티션 수와 한 그룹 안의 컨슈머 수는 1:1 매핑이 이상적이다. 단, '파티션 수 < 컨슈..

Back-End/Kafka 2022.08.23

[Kafka] 기초2 - 프로듀서 기본 동작과 예시

❑ 프로듀서 디자인 프로듀서는 카프카의 토픽으로 메시지를 전송하는 역할을 담당한다. 프로듀서를 설정할 수 있는 여러가지 옵션이 있으므로 원하는 조건으로 메시지를 보내기 위해선 옵션을 적절히 사용할 수 있어야한다. 레코드(ProducerRecord) 레코드는 카프카로 전송하기 위한 실제 데이터이며, 토픽(Topic), 파티션(Partition), 키(Key), 밸류(Value)으로 구성된다. 토픽과 밸류(메시지 내용)는 필수 값이다. 파티션(특정 파티션을 지정), 키(특정 파티션에 레코드를 정렬)은 선택 옵션이다. 시리얼라이저(Serializer) 레코드의 키와 밸류를 Byte Array로 변환시킨다. 파티셔너(Partitioner) 레코드들은 프로듀서의 send() 메시지를 통해 시리얼라이저와 파티셔너를..

Back-End/Kafka 2022.08.11

[Kafka] 기초1 - 기본 구성과 핵심 개념(토픽, 파티션, 리플리케이션 등)

❑ 카프카 구성 Overview 구성 요소 설명 주키퍼(Zookeeper) 코디네이터 역할을 하는 아파치 프로젝트 애플리케이션. 카프카의 정상 동작을 보장하기 위해 메타데이터(metadata)를 관리하고 브로커의 상태 점검(Health check)을 한다. 카프카(또는 카프카 클러스터) 여러 개의 브로커를 구성한 클러스터를 의미 브로커(Broker) 카프카가 설치된 서버 또는 노드 프로듀서(Producer) 카프카로 메시지를 보내는 역할을 하는 클라이언트를 총칭 컨슈머(Consumer) 카프카에서 메시지를 꺼내가는 역할을 하는 클라이언트를 총칭 토픽(Topic) 카프카는 메시지 피드들을 토픽으로 구분하고, 각 토픽의 이름은 카프카 내에서 고유함 파티션(Partition) 병렬 처리 및 고성능을 얻기 위해..

Back-End/Kafka 2022.08.09

[Kafka] Kafka Broker 설정(server.properties) 꼼꼼히 들여다보기

0. server.properties 원본더보기...############################# Server Basics ############################## The id of the broker. This must be set to a unique integer for each broker.broker.id=0############################# Socket Server Settings ############################## The address the socket server listens on. It will get the value returned from# java.net.InetAddress.getCanonicalHostName() i..

Back-End/Kafka 2022.02.04

[Kafka] Local 환경에 Kafka Cluster 구성하기 (Windows 환경)

0. Local 카프카 구성학습을 위해 한 개의 Machine에 세 개의 Kafka Broker를 띄우고, Zookeeper는 1개만 띄운다.세 개의 Kafka Broker를 띄우기 위해 브로커의 포트를 9092, 9093, 9094 로 설정하여 실행한다 1. server.properties 작성세 개의 브로커를 띄우기 위해 server.properties를 세 개 만든다server.properties를 복사해 server1.properties 생성server.properties를 복사해 server2.properties 생성각각의 server.properties의 broker.id, listener, log.dirs를 위와 같이 설정한다$ vi config/zookeeper-server-start.sh..

Back-End/Kafka 2021.08.17

[Kafka] Kafka 설치 및 CLI를 이용해 Producer, Consumer 테스트 (Windows 환경)

0. 기본 환경jdk 1.8 버전 이상 설치 필요시스템 환경변수 설정 필요 (JAVA_HOME) 1. Kafka 설치Apache Kafka 공식 홈페이지 kafka_2.13-2.8.2.tgz 다운로드적당한 위치로 파일을 옮기고 압축 해제압축 해제 하면 설치가 끝난 것. kafka_2.13-2.8.2 폴더로 카프카를 실행시킬 수 있다.Zookeeper, Kafka 실행 등을 .sh 파일로 실행했던 맥 환경과 달리 윈도우에서는 bin/windows 폴더 안에 있는 배치 파일들을 사용한다. 2. Zookeeper 실행1. 새로운 PowerShell 실행2. 카프카 폴더로 이동3. 주키퍼 실행$ ./bin/windows/zookeeper-server-start.bat ./config/zookeeper.prope..

Back-End/Kafka 2021.08.07