DevBoi

[Kafka] 토픽 생성 및 파티션 설정 본문

Develop/[Kafka]

[Kafka] 토픽 생성 및 파티션 설정

HiSmith 2023. 8. 1. 23:01
반응형

토픽은 디비의 테이블과 같다.

토픽을 생성하려면, 클러스터 정보와 토픽의 이름을 알고 있으면 된다.

topic.sh를 활용해서 해당 토픽을 생성하거나,컨트롤 하면 된다.

 

파티션 개수, 복제 개수를 설정할 수 있지만, 안하면 브로커의 기본값으로 세팅된다.

 

우선 주키퍼와 브로커를 실행하자

실행파일은 bin 하위, config 파일은 config 폴더 하위에 있다.

 

파티션 개수를 줄일수 없는 특성 때문에, 해당 파티션의 개수를 줄여야 할 때는 방법이 없다.

이때는 그냥 새로 토픽을 만드는 것이 좋다.

 

일단. 주키퍼, 브로커를 실행하자

 

1) 주키퍼 실행

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

2) 브로커 실행

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

 

3) 토픽 생성

bin/kafka-topics.sh --create --bootstrap-server my-kafka:9092 --topic hello.kafka

 

4) 생성된 토픽 확인

 bin/kafka-topics.sh --bootstrap-server my-kafka:9092 --topic hello.kafka --describe

 

위와 같이 --describe를 하게 되면, 파티션이나, 리더개수 복제개수등을 알 수 있다.

 

 

5) 옵션을 지정해서 토픽 생성

bin/kafka-topics.sh --create --bootstrap-server my-kafka:9092 --partitions 10 --replication-factor 1 --topic hello.kafka2

이 옵션 외에 retention ms를 설정할 수도 있다.

무튼 복제 개수나 파티션 개수를 직접 지정해서 토픽을 생성할 수도있다.

 

위와 같이 신규로 생성한 토픽2에 대해서는 레플리카와 파티션의 개수가 많은 것을 확인 할 수있다.

 

 

6) 동적으로 토픽 파티션 변경하기

bin/kafka-topics.sh --bootstrap-server my-kafka:9092 --topic hello.kafka --alter --partitions 3

위와 같이 명령어를 날리면, 파티션이 3개로 늘어난다.(기존에는 1개였음)

 

줄이는 명령어는 당연히 안된다.

반응형