본문 바로가기
Kafka

카프카 개념 정리(5) - 파티션 할당과 리더와 팔로워 선출 ISR

by devLog by Ronnie's 2022. 12. 31.

이번 시간에는 컨슈머와 파티션의 개수의 따른 할당 케이스와 그 과정에서 리더와 팔로워를 왜 선출하고 어떤 방식으로 선출되어 사용되는지 정리한다. 추가적으로 ISR(In Sync Replica)에 대한 개념도 정리한다.

 

카프카 개념 정리(5) - 파티션 할당과 리더와 팔로워 선출 ISR

 

카프카 개념 정리(5) - 파티션 할당과 리더와 팔로워 선출

 

컨슈머와 파티션의 개수의 따른 할당 케이스는?


파티션은 컨슈머 그룹내의 컨슈머와 1:1 또는 n:1매칭이 된다고 했는데 케이스별로 컨슈머가 많을수도 있고 파티션이 더 많을수도 있다.

각 상황별로 어떻게 매칭되는지 알아본다.

  1. 파티션 3개와 컨슈머 3개 일때 -> 각각 하나의 컨슈머에 파티션 할당
  2. 파티션 2개와 컨슈머 3개 -> 2개의 파티션은 각각 하나의 컨슈머에 할당되고 남은 하나의 컨슈머는 어떤 파티션도 할당받지 못하는 상태
  3. 파티션 4개와 컨슈며 3개 -> 2개의 파티션은 각각 하나의 컨슈머에 할당되고 남은 하나의 컨슈머가 2개의 파티션을 할당받는다

 

 

리더와 팔로워는 왜 선출하는가?


위에서도 말했듯이 카프카의 토픽은 1개 이상의 파티션으로 구성되고 각 파티션은 1개의 리더 레플리카와 0개 이상의 레플리카로 구성이 된다.

 

만약 replication factor 가 1이라면 파티션은 1개의 리더 레플리카와 0개의 팔로워 레플리카로 이루어지게 된다.

Replication factor가 만약 3이라면 1개의 리더 레플리카와 2개의 팔로워 레플리카로 이루어지게 된다.

이미지를 통해 구성을 좀 더 자세히 알아보았으니 원래의 궁금증이었던 리더와 팔로워는 왜 선출하는지 알아보자. 팔로워 레플리카는 리더 레플리카의 데이터를 복제만 한다고 했었다.

 

이런 구성을 갖는 이유는 리더 레플리카에 예상치 못한 장애가 발생 시 팔로워 레플리카 중에서 새로운 리더를 선출하여 장애 상황에서 대응을 하기 위함이다. 이러한 기능이 가능한 이유는 카프카에서의 ISR(In Sync Replica)라는 개념을 도입하였기 때문이다.

 

 

ISR(In Sync Replica)란?


ISR은 일종의 레플리카들의 그룹이라고 생각하면 된다. 즉 리더 레플리카 + 팔로워 레플리카들의 그룹이다.

 

이러한 그룹은 리더 레플리카와 제대로 동기화가 이루어진 팔로워 레플리카들로 구성이 된다. 이렇게 구성이 될 수 있는 이유는 팔로워 레플리카들은 동기화를 하기 위하여 Fetch요청을 리더 레플리카에게 보낸다. 리더 레플리카는 그 응답으로 팔로워 레플리카들에게 메시지를 전송한다. Fetch 요청에는 팔로워 레플리카들이 다음으로 받기 원하는 메시지의 오프셋이 포함되며 항상 수신된 순서대로 처리된다.

그럼 만약 이 상황에서 Broker4에 장애가 생겨 다운이 되었다고 가정해보자. 이러면 리더 레플리카가 속해 있는 ISR 그룹에서 팔로워 레플리카 중 하나가 리더로 선출이 되고 Broker4에 나머지 팔로워 레플리카들은 일정 시간 이상 Fetch 요청에 응답을 못하므로 동기화에 실패한 것으로 간주되어 리더 레플리카는 해당 팔로워 레플리카는 ISR에서 제거하게 된다.

해당 응답 시간의 설정은 변경이 가능하여 Broker 설정 파일에서 replica.lag.time.max.ms 값을 통해 가능하다.

 

지난 글


카프카 개념 정리(4) - 카프카는 데이터를 어떻게 저장하고 읽어오는가?

 

카프카 개념 정리(4) - 카프카는 데이터를 어떻게 저장하고 읽어오는가?

이번 시간에는 카프카에서 데이터를 어떻게 저장하고 읽어오는지에 대해서 정리한다. 카프카 개념 정리(4) - 카프카는 데이터를 어떻게 저장하고 읽어오는가? 데이터를 어떻게 저장하는가? 카프

sjparkk-dev1og.tistory.com

카프카 개념 정리(3) - 카프카 아키텍처

 

카프카 개념 정리(3) - 카프카 아키텍처

이번 시간에는 카프카에 대해서 좀 더 자세히 알아보는 시간을 가진다. 카프카의 아키텍처에 대해서 이해해본다. 카프카가 어떠한 구조로 이루어져있고 각 구조들이 어떠한 역할을 하는지에 대

sjparkk-dev1og.tistory.com

카프카 개념 정리(2) - 카프카의 동작 방식 Pub Sub

 

카프카 개념 정리(2) - 카프카의 동작 방식 Pub Sub

카프카에 대한 개념을 정리하는 시간을 가지려 한다. 그 두번째로 카프카의 동작 방식과 pub / sub 모델의 대한 장단점과 특징 및 메시징 시스템이란 무엇인지에 대해서 정리한다. 카프카 개념 정

sjparkk-dev1og.tistory.com

참고


https://ddimtech.tistory.com/5

 

Kafka Replication

목차 Kafka Replication Replication factor Leader & Follower ISR(In Sync Replica) Kafka Replication Kafka에서는 높은 가용성을 위하여 Replication이란 기능을 제공합니다. Replication은 각 Topic의 Partition들을 Kafka Cluster내의

ddimtech.tistory.com

 

댓글