Kafka 서버를 구축하고 Topic을 생성할 때 오류가 발생할 수 있습니다.
아래는 Topic 생성 구문입니다.
./bin/kafka-topics.sh --create --bootstrap-server BootstrapServerString --command-config client.properties --replication-factor 3 --partitions 1 --topic MSKTutorialTopic
해당 구문을 실행하면 아래 오류가 발생합니다.
물론 Broker 개수가 맞다면 오류가 발생하지 않습니다.
while executing topic command : Replication factor: 3 larger than available brokers: 2. org.apache.kafka.common.errors.InvalidReplicationFactorException: Replication factor: 3 larger than available brokers: 2. (kafka.admin.TopicCommand$)
오류의 원인은 명확합니다.
생성된 Broker 개수를 초과해서 Replica를 지정했기 때문입니다.
현재 Kafka에는 Broker가 2개 생성되어 있습니다.
하지만 Topic을 생성할 때 replication-factor 옵션을 3개로 지정했습니다.
Replica 개수를 Broker에 맞게 조정하면, Topic이 생성됩니다.
ASIS --replication-factor 3 TOBE --replication-factor 2
참고로 Kafka Message는 여러 Broker로 복제됩니다.
이를 Replica라고 하며, Topic을 생성할 때 복제 개수를 지정할 수 있습니다.
Replica를 활용하는 이유는 빠른 처리와 장애 대응을 위해서입니다.
그래서 Kafka는 특정 Broker에 문제가 생겨도 정상 서비스가 가능합니다.