Oh My Algorithm
Concept Guide리더·팔로워 · ISR

복제와 ISR (Replication & ISR)

파티션마다 리더 하나와 팔로워 몇 개가 있고, 읽고 쓰는 것은 리더가 전담합니다. 팔로워는 리더를 따라 복사하며, 충분히 따라잡은 복제본들의 목록을 ISR이라고 부릅니다. 리더가 죽으면 ISR 안에서 새 리더가 뽑히므로, ISR에 남아 있는지가 곧 '이 복제본으로 승격해도 안전한가'를 뜻합니다.

01복제와 ISR (Replication & ISR)

파티션 하나는 브로커 세 대에 복제됩니다. 그중 하나만 리더이고 나머지는 팔로워입니다.

읽기와 쓰기는 전부 리더가 받습니다. 팔로워는 클라이언트를 직접 상대하지 않습니다.

팔로워는 리더의 로그를 계속 당겨와 자기 로그 뒤에 붙입니다. 이게 복제입니다.

충분히 따라잡은 복제본들의 목록을 ISR 이라고 부릅니다. 지금은 셋 다 들어 있습니다.

브로커 3 이 느려져 offset 2 에 멈췄습니다. 리더는 5 까지 갔는데 한참 뒤처졌습니다.

일정 시간 이상 뒤처지면 ISR 에서 빠집니다. 이제 ISR 은 브로커 1 과 2 뿐입니다.

ISR 이 줄면 견딜 수 있는 장애 수도 줄어듭니다. ISR 축소 경보가 중요한 이유입니다.

여기서 리더인 브로커 1 이 죽습니다. 새 리더를 뽑아야 합니다.

새 리더는 ISR 안에서만 뽑습니다. 뒤처진 브로커 3 은 자격이 없고, 브로커 2 가 승격됩니다.

브로커 2 는 offset 5 까지 갖고 있었으므로 데이터를 잃지 않고 이어받습니다.

ClientBroker 1Leader0 · 1 · 2Broker 2Follower0 · 1 · 2Broker 3Follower0 · 1 · 2
1 / 10

정리

ISR 은 '지금 승격해도 안전한 복제본' 목록입니다. acks=all 이 기다리는 대상도 바로 이 ISR 입니다.

02 쉽게 이해하기

For Everyone
🔑핵심 동작

파티션은 여러 브로커에 복제되고 읽기와 쓰기는 리더만 받습니다. 충분히 따라잡은 복제본 목록이 ISR 이고, 새 리더는 그 안에서만 뽑히므로 저장된 데이터를 잃지 않습니다.

💡쉽게 말하면

쓰기는 항상 리더로 갑니다.

팔로워는 리더의 로그를 계속 당겨와 자기 로그에 붙이고, 뒤처지지 않은 것들만 ISR에 남습니다.

리더 장애 시 ISR에서 새 리더를 뽑기 때문에, ISR이 줄어들면 그만큼 견딜 수 있는 장애 수가 줄어듭니다.

acks=all 은 ISR 전체의 저장을 기다리는 설정이라 복제와 짝을 이룹니다.

📍어디에 쓰나
  • 복제 계수와 min.insync.replicas 설정
  • 브로커 장애 시 감내 범위 계산
  • ISR 축소 경보의 의미 파악

03 자주 묻는 질문

FAQ
복제와 ISR (Replication & ISR)란 무엇인가요?+

파티션마다 리더 하나와 팔로워 몇 개가 있고, 읽고 쓰는 것은 리더가 전담합니다. 팔로워는 리더를 따라 복사하며, 충분히 따라잡은 복제본들의 목록을 ISR이라고 부릅니다. 리더가 죽으면 ISR 안에서 새 리더가 뽑히므로, ISR에 남아 있는지가 곧 '이 복제본으로 승격해도 안전한가'를 뜻합니다.

복제와 ISR (Replication & ISR)은(는) 어디에 사용하나요?+

복제 계수와 min.insync.replicas 설정, 브로커 장애 시 감내 범위 계산, ISR 축소 경보의 의미 파악

복제와 ISR (Replication & ISR)를 쉽게 비유하면?+

파티션은 여러 브로커에 복제되고 읽기와 쓰기는 리더만 받습니다. 충분히 따라잡은 복제본 목록이 ISR 이고, 새 리더는 그 안에서만 뽑히므로 저장된 데이터를 잃지 않습니다.