Kafka commands(정리중....)

김재진·2023년 9월 22일
0
  1. kafka topic 리스트 출력
./kafka-topics.sh \
--bootstrap-server \ kafka_server1:9092,kafka_server2:9092,kafka_server3:9092 \
--list
  1. topic 생성
./kafka-topics.sh \
--bootstrap-server kafka_server1:9092,kafka_server2:9092,kafka_server3:9092 \
--replication-factor 2 --partitions 2 --topic <topic_name> --create
  • --bootstrap-server : 명령어를 보내는 broker(kafka server)의 주소 및 포트 번호
  • --partitions : 전송하는 데이터를 몇개로 분할하는지에 대한 값
  • --replication-factor : 분할된 partitions를 몇개로 복제하는지에 대한 값

[!info]
--partitions 와 --replication-factor의 값은 broker 수보다 적어야 한다.

ex) 위 명령어로 topic을 생성했을 때 broker에 생긴 topic의 상태 , topic의 데이터는 1,2,3,4라고 가정한다.

brokerreplication-factor 1replication-factor 2
kafka1partition1 (1,2)partition2 (3,4)
kafka2partition1 (1,2)null
kafka3nullpartition2 (3,4)
  1. topic 상태를 확인
./kafka-topics.sh \
--bootstrap-server kafka_server1:9092,kafka_server2:9092,kafka_server3:9092 \
--topic <topic_name> --describe
  • 출력 내용
Topic: test2	TopicId: okMTIBGGR9qRqNE_p7bZeQ	PartitionCount: 2	 ReplicationFactor: 2	Configs:
	Topic: <topic_name>	Partition: 0	Leader: <broker2>	Replicas: <broker2>,<broker1>	Isr: <broker2>,<broker1>
	Topic: <topic_name>	Partition: 1	Leader: <broker3>	Replicas: <broker3>,<broker2>	Isr: <broker3>,<broker2>

Partition : 분할한 partition의 번호 , 여기서는 2개로 분할됐으므로 0,1 번 파티션들이 생겼다.
Leader : topic이 저장된 leader broker node, 원본 partition이 저장되어있다.
Replicas : 복제된 partition이 저장된 broker 위치
Isr (In Sync Replication) : 파티션이 복제된 broker가 정상적으로 동작하는지 알려준다. 정상적으로 동작하는 경우 Replicas와 같은 값을 나타내야한다.

  1. topic 삭제
./kafka-topics.sh \
--bootstrap-server kafka_server1:9092,kafka_server2:9092,kafka_server3:9092 \
--topic <topic_name> --delete
  1. producer로 topic에 메세지 보내기
 ./kafka-console-producer.sh \
 --bootstrap-server kafka_server1:9092,kafka_server2:9092,kafka_server3:9092 \
 --topic <topic_name>
  • 출력
> 메세지로 보낼값 입력 후 Enter 
> 메시지 1
> 메시지2
> 종료 시 ctrl + c , topic에 메시지가 저장됨
  1. consumer로 topic의 메시지 가져오기
./kafka-console-consumer.sh \
--bootstrap-server kafka_server1:9092,kafka_server2:9092,kafka_server3:9092 \
--topic <topic_name> \
--from-beginning
  • 출력
> 메세지로 보낼값 입력 후 Enter 
> 메시지 1
> 메시지2
> 
  • consumer는 세션이 유지되는한 producer를 통해 들어온 메시지를 실시간으로 확인할 수 있다.
profile
주니어 엔지니어입니다.

0개의 댓글