본문 바로가기
Programming/Redis, Kafka

카프카 Kafka 콘솔에서 사용하기

by Renechoi 2023. 6. 2.

Kafka

- Scalar 언어로 된 오픈 소스 메시지 브로커 프로젝트 (브로커: 중간 서버, 메시지: 다양한 데이터 가능)

- 실시간 데이터 피드를 관리하기 위해 통일된 높은 처리량, 낮은 지연 시간을 지닌 플랫폼 제공 

 

 

카프카 이전의 방식

- end to end 연결 방식의 아키텍처

- 데이터 연동의 복잡성 증가 

- 서로 다른 데이터 파이프라인 연결 구조

- 확장이 어려움 

 

카프카 탄생의 배경

-> 모든 시스템으로 데이터를 실시간으로 전송하여 처리할 수 있는 시스템

-> 데이터가 많아지더라도 확장이 용이한 시스템 

 

 

보내는 쪽과 받는 쪽이 누가 보내고 누가 받는지를 전혀 신경 쓰지 않게 된다. 

- Prdocuer / Consumer를 분리 

 

 

Kafka Broker 

= Kafka Application Server 

-> 3대 이상의 클러스터를 구성 

 

Zookeeper

- Broker를 중재해주는 역할 

 

 


 

카프카 사용 시나리오 

 

kafka client 

-> java library 

 

 

여러가지 kafka 관련 api 제공 

 

kafa cluster <-> kafka -client application 

 

 

kafka 서버 구동 

$KAFKA_HOME/bin/zookeeper-server-start.sh $KAFKA_HOME/config/zookeeper.properties

$KAFKA_HOME/bin/kafka-server-start.sh $KAFKA_HOME/config/server.properties

 

topic 생성 

$KAFKA_HOME/bin/kafka-topics.sh --create --topic my-topic --bootstrap-server localhost:9092 --partitions 3 --replication-factor 1

 

topic 목록 확인 

$KAFKA_HOME/bin/kafka-topics.sh --list --bootstrap-server localhost:9092

 

topic 정보 확인 

$KAFKA_HOME/bin/kafka-topics.sh --describe --topic my-topic --bootstrap-server localhost:9092

 

 

 

 

 

메시지 생산 producer 

$KAFKA_HOME/bin/kafka-console-producer.sh --broker-list localhost:9092 --topic my-topic

sudo /opt/homebrew/bin/kafka-console-producer --broker-list localhost:9092 --topic my-topic

 

메시지 소비 consumer

$KAFKA_HOME/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic my-topic --from-beginning 

sudo /opt/homebrew/bin/kafka-console-consumer --bootstrap-server localhost:9092 --topic my-topic --from-beginning

 

 

 

 

 


kafka connect 사용하기 

 

- kafka connect를 통해 data를 import/export 가능

- 코드 없이 configuration으로 데이터 이동

- standalone mode, Distribution mode 지원 

  - restful api 통해 지원

  - stream 또는 batch 형태로 데이터 전송 가능

  - custom connector를 통한 다양한 plugin 제공 

 

source system > kafka connect source > kafka cluster > kafka connect sink > other dbs... 

 

Kafka Connect는 데이터 소스(Source)와 데이터 대상(Sink)을 연결하여 데이터를 효율적으로 이동시킬 수 있다. 데이터 소스는 Kafka로부터 데이터를 읽어들이는 역할을 하며, 데이터 대상은 Kafka로 데이터를 전송하는 역할을 한다. Kafka Connect를 사용하면 다양한 소스 시스템(예: 데이터베이스, 메시징 시스템, 파일 등)과 대상 시스템(예: 데이터베이스, Hadoop, Elasticsearch 등) 사이에서 데이터를 쉽게 이동시킬 수 있다.

 

 

 

kafka connect 실행 

./bin/connect-distributed ./etc/kafka/connect-distributed.properties

 

 

 

 

 

 

 

반응형