Data Engineering/Kafka

[Kafka] Apache Kafka 설치, 서버 실행, Producer, Consumer 생성

snoony 2024. 3. 29. 12:41

https://kafka.apache.org/downloads

 

Apache Kafka

Apache Kafka: A Distributed Streaming Platform.

kafka.apache.org

가장 안정적인 버전 설치하기 : 2.5.0 -> 자바 1.8과 잘 맞는다

Kafka heap 사이즈 조정

[root@localhost kafka]# export KAFKA_HEAP_OPTS="-Xmx400m -Xms400m"

서버 설정

[root@localhost kafka]# gedit config/server.properties

listeners=PLAINTEXT://:9092 주석 해제

Zookeeper 실행

[root@localhost kafka]# bin/zookeeper-server-start.sh -daemon config/zookeeper.properties

 

Kafka 실행

[root@localhost kafka]# bin/kafka-server-start.sh -daemon config/server.properties

 

batch 파일 생성

start-kafka.bat

echo Start Zookeeper
bin/zookeeper-server-start.sh -daemon config/zookeeper.properties
echo Zookeeper started successfully

echo Start Kafka
bin/kafka-server-start.sh -daemon config/server.properties
echo Kafka started successfully

batch 파일을 생성한 후 ./start-kafka.bat 을 실행하면 Zookeeper와 Kafka 모두 실행시킬 수 있다.

 

실행 확인

로그 띄우기

tail -f logs/*

 

Topic 생성

[root@localhost kafka]# bin/kafka-topics.sh --create --bootstrap-server localhost:9092 
--replication-factor 1 --partitions 3 --topic test

생성한 Topic 확인

[root@localhost kafka]# bin/kafka-topics.sh --describe --bootstrap-server localhost:9092

Topic 리스트 확인하기

[root@localhost kafka]# bin/kafka-topics.sh --list --bootstrap-server localhost:9092

Topic 삭제하기

bin/kafka-topics.sh --delete --bootstrap-server localhost:9092 --topic [삭제할 토픽]

 

 

콘솔

Kafka producer 생성

[root@localhost kafka]# bin/kafka-console-producer.sh --topic test --bootstrap-server localhost:9092

Kafka consumer 생성

[root@localhost kafka]# bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 
--topic test --from-beginning

왼쪽 : consumer, 오른쪽 : producer

Grouping

컨슈머 그룹 설정

[root@localhost kafka]# bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 
--topic test --group testgroup --from-beginning

Producer

Consumer

그룹 확인하기

그룹 목록 확인

[root@localhost kafka]# bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --list

그룹 상세 내용 확인

[root@localhost kafka]# bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 
--group testgroup --describe

reset offset

bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 
--group testgroup 
--topic test 
--reset-offsets 
--to-earliest 
--execute

  • --to-earlist : 가장 낮은 offset으로 설정
  • --to-latest : 가장 높은 offset으로 설정
  • --to-offset : offset 번호 설정 가능