카프카 운용시 브로커내에 생성되지 않는 토픽 이름으로 메시지를 보낼때, 카프카에서는 자동으로 토픽을 생성하게 해줄수 있다.
아래 옵션은 존재하지 않는 토픽에 메타데이터를 패치하거나 메세지를 생성하면 자동으로 토픽을 생성한다.
운영에서는 false로 설정하기를 가이드 하고 있다.
# 기본값은 true로 설정.
auto.create.topics.enable = true
토픽을 자동으로 생성하는 과정에서 partition 수와 replication-factor 값도 기본값을 설정할 수있다.
# 기본 partition수 설정.
# 기본값은 3이다.
num.partitions
# 기본 replication-factor 수 설정.
# kafka version 2.12.x버전에는 해당 옵션이 없긴하지만, 항목을 그대로 추가해주면 적용가능하다.
default.replication.factor
이제 위의 내용을 직접 적용후 확인해 보자.
위의 옵션을 ../config/server.properites 파일에 수정
(multi broker로 구동한다면, broker별 server.properties 파일 모두 수정)
...............
############################# Log Basics #############################
# A comma separated list of directories under which to store log files
log.dirs=D:/tmp/kafka-logs
# The default number of log partitions per topic. More partitions allow greater
# parallelism for consumption, but this will also result in more files across
# the brokers.
num.partitions=3
default.replication.factor = 2
..............
자동으로 토픽 생성시 partition 수 및 replication-factor 수 확인
D:\kafka\kafka_2.12-2.2.0\bin\windows>kafka-topics.bat --describe --bootstrap-server localhost:9092 --topic logtopic001
Topic:logtopic001 PartitionCount:3 ReplicationFactor:2 Configs:segment.bytes=1073741824
Topic: logtopic001 Partition: 0 Leader: 2 Replicas: 2,0 Isr: 2,0
Topic: logtopic001 Partition: 1 Leader: 0 Replicas: 0,1 Isr: 0,1
Topic: logtopic001 Partition: 2 Leader: 1 Replicas: 1,2 Isr: 1,2
PS. 비슷해보이는 아래옵션과 헷갈리면 말자......
# 오프셋 토픽에 대한 repication factor 수. 높은 가용성 보장.
# 내부토픽 생성은 클러스터 사이즈가 이 replication factor수를 만날때까지 실패할것이다.(무슨말이지..?)
offsets.topic.replication.factor
# 오프셋 커밋 토픽의 파티션 수. deployment후에는 절대 바꿔선 안된다.
offsets.topic.num.partitions
참고 사이트
공식 Documnet (https://kafka.apache.org/documentation/#configuration)
카프카브로커 설정 (https://free-strings.blogspot.com/2016/04/blog-post.html)
'Programming > Kafka' 카테고리의 다른 글
[kafka] JVM Heap size (0) | 2020.05.13 |
---|---|
[kafka] spring kafka vs kafka clients (0) | 2020.05.06 |
[zookeeper] zookeeper 실행시 session request 무한 루프 (0) | 2020.05.06 |