각 메세지들을 여러 개로 복제해서 카프카 클러스터 내 브로커들에 분산시키는 동작을 의미
따라서 하나의 브로커가 어떠한 이유로 종료되더라도 카프카는 안정성을 유지할 수 있다.
./kafka-topics.sh --bootstrap-server kafka.server.01:9092 --create --topic test-overview01 --partitions 1 --replication-factor 3
해당 명령어로 test-overview01
라는 토픽을 만들었다.
--replication-factor
옵션은 카프카 안에 몇개의 리플리케이션을 유지하겠냐는 것을 의미한다.
예를 들어 --replication-factor 1
이라고 하면 리플리케이션이 1개(원본만) 있다는 것이다.
--replication-factor 3
은 리플리케이션이 3개(원본 포함) 있다는 것이다.
정확하게는 토픽 자체가 복제 되는 것이 아니라 토픽의 파티션이 복제 되는 것이다.
안정성을 목적으로 모든 토픽에 대해 각 3개의 리플리케이션으로 설정할 수 있다.
리플리케이션 팩터 수가 커지면 안정성은 높아지지만 그만큼 브로커의 리소스를 많이 사용하게 된다.
따라서 복제에 대한 오버헤드를 줄여서 최대한 브로커를 효율적으로 사용하는 것을 권장한다고 한다.
토픽 생성 시 다음과 같은 기준을 세워두고 리플리케이션 팩터 수를 설정해 사용하면 더 좋다고 한다.