./kafka-topics.sh \
--bootstrap-server \ kafka_server1:9092,kafka_server2:9092,kafka_server3:9092 \
--list
./kafka-topics.sh \
--bootstrap-server kafka_server1:9092,kafka_server2:9092,kafka_server3:9092 \
--replication-factor 2 --partitions 2 --topic <topic_name> --create
[!info]
--partitions 와 --replication-factor의 값은 broker 수보다 적어야 한다.
ex) 위 명령어로 topic을 생성했을 때 broker에 생긴 topic의 상태 , topic의 데이터는 1,2,3,4라고 가정한다.
broker | replication-factor 1 | replication-factor 2 |
---|---|---|
kafka1 | partition1 (1,2) | partition2 (3,4) |
kafka2 | partition1 (1,2) | null |
kafka3 | null | partition2 (3,4) |
./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와 같은 값을 나타내야한다.
./kafka-topics.sh \
--bootstrap-server kafka_server1:9092,kafka_server2:9092,kafka_server3:9092 \
--topic <topic_name> --delete
./kafka-console-producer.sh \
--bootstrap-server kafka_server1:9092,kafka_server2:9092,kafka_server3:9092 \
--topic <topic_name>
> 메세지로 보낼값 입력 후 Enter
> 메시지 1
> 메시지2
> 종료 시 ctrl + c , topic에 메시지가 저장됨
./kafka-console-consumer.sh \
--bootstrap-server kafka_server1:9092,kafka_server2:9092,kafka_server3:9092 \
--topic <topic_name> \
--from-beginning
> 메세지로 보낼값 입력 후 Enter
> 메시지 1
> 메시지2
>