카프카는 분산 메시징 어플리케이션으로 특정 노드에 문제가 발생한 경우에도 높은 가용성을 제공한다.이를 위해 카프카는 메시지를 여러 브로커에 걸처 replication(복제)을 한다.

기본 리플리케이션 팩터

replication factor는 파티션의 메시지를 몇개까지 복제할 것인지 설정하는 수치다. 기본값은 1이다. (default.replication.factor)클러스터 내 리플리케이션 팩터 값 설정은 동일하게 설정되어야한다.

리더와 팔로워

카프카에서는 리더(원본)와 팔로워(복제본) 역할로 나누어진다.

리더와 팔로워 정보 확인

토픽 describe 명령어로 확인할수 있다.

./bin/kafka-topics.sh --bootstrap-server 127.0.0.1:9092 --describe --topic test
# Topic: test   PartitionCount: 1   ReplicationFactor: 2    Configs: segment.bytes=1073741824
#   Topic: test Partition: 0    Leader: 0   Replicas: 0,1   Isr: 0,1

장애처리와 In Sync Replica (ISR)

대부분의 분산처리 시스템에서 자동으로 장애를 처리하려면 노드가 "alive" 상태임을 정의해야하는데, 카프카에서는 두가지 조건이 있다.