카프카의 리플리케이션 관리
- Coding/Apache Kafka
- 2020. 12. 20.
들어가며
리플리케이션의 이해가 먼저 필요하다.
devfunny.tistory.com/380?category=829528
팩터
리플리케이션의 팩터(Replication Factor)를 지정할 수 있는데, 팩터의 개수는 리플리케이션의 수와 같다. 리플리케이션 팩터는 default 값이 1개인데, 이를 2개로 수정하면 리플리케이션의 수가 2개가 된다.
카프카 클러스터 내에 3개의 브로커가 존재할 경우, 리플리케이션 팩터 수를 수정하지 않았을 때 default는 1개이다. 따라서 3개의 브로커 중에 1개의 브로커 안에 토픽 1개가 존재한다. 이후, 리플리케이션 팩터 수를 2로 변경한다면 3개의 브로커 중 2개의 브로커에 각각 토픽이 존재하게된다.
팔로워의 관리
카프카는 리플리케이션을 제공하기 때문에 브로커의 리더 변경(리플리케이션)이 가능하다. 만약 브로커1에 '리더'가 있고, 브로커 2에 '팔로워'가 존재한다. 이때 브로커1이 다운된다면 브로커2와 브로커2 안의 팔로워가 리더로 승격하게 된다. 어떤 브로커가 다운되느냐에 상관 없이 카푸카는 프로듀서가 끊임없이 메시지를 보낼 수 있도록 구현되어있다.
팔로워가 리더의 데이터를 어떻게 유지할까?
리더는 모든 데이터의 읽기/쓰기에 대한 요청을 저장해나간다. 그리고 팔로워는 이러한 리더를 주기적으로 보면서 동기화를 수행한다. 자신에게 없는 데이터를 리더로부터 주기적으로 가져와서 리더와 동일한 데이터를 유지하도록 한다.
하지만 팔로워가 리더와 항상 동일할 것이라는 보장은 없다.
ISR (In Sync Replica)
현재 리플리케이션되고 있는 리플리케이션의 그룹이다. 팔로워는 ISR에 속해있는 구성원이여야만 리더로 승격될 자격을 가진다. 팔로워들은 짧은 주기로 리더에 새로운 메시지가 저장된 것이 없는지 확인하는데, 만약 이를 잘 작동하지않는 팔로워가 존재한다면 해당 팔로워의 이상을 감지하고 ISR 그룹에서 추방시킨다.
카프카의 리플리케이션은 '토픽'이 리플리케이션 되는 것이 아닌, '토픽을 나눈 각각의 파티션'이 리플리케이션되는 것이다.
'Coding > Apache Kafka' 카테고리의 다른 글
카프카의 오프셋과 커밋 (0) | 2020.12.20 |
---|---|
카프카의 컨슈머 그룹 (0) | 2020.12.20 |
카프카의 토픽과 파티션, 오프셋 (0) | 2020.12.20 |
카프카의 기능 (0) | 2020.12.20 |
카프카의 기본개념 (0) | 2020.12.20 |