All Honey Tip

[카프카] 4. 아파치 카프카의 ISR(In-Sync-Replicas)

아파치 카프카의 ISR(In-Sync-Replicas)

지난 시간에 이어, 아파치 카프카의 ISR(In-Sync-Replicas)에 대해 알아보겠습니다. ISR은 리더 파티션과 팔로워 파티션이 모두 Sync된 상태를 의미합니다. 복제 개수가 2인 토픽(리더 파티션 1개와 팔로워 파티션 1개가 존재)으로 가정해보면, 팔로워 파티션에 리더 파티션의 모든 오프셋이 존재해야 동기화가 완료된 상태라고 할 수 있습니다.

image 28



ISR이 완전하지 못하다면?

팔로워 파티션이 리더 파티션의 오프셋을 모두 복제하지 못한 상태로 서비스가 지속된다면, 데이터가 유실될 수 있습니다. 여기서 한 가지 옵션으로 운영 방법을 결정할 수 있는데요, 바로 unclean.leader.election.enable 입니다.

  • unclean.leader.election.enable=true: 유실을 감수하고 복제가 덜된 팔로워 파티션을 리더로 승급합니다. 즉, 복제되지 않은 오프셋을 버리고 서비스를 계속 재개하는 것이죠.
  • unclean.leader.election.enable=false: 유실을 허용하지 안흣빈다. 해당 브로커가 복구되고 팔로워 파티션에 오프셋 복제가 완벽히 완료될 때까지 서비스를 중단합니다. 금융 서비스 같은 경우, false 처리가 요구된다고 할 수 있죠.



마치며

이번 시간에는, ISR(In-Sync-Replicas)에 대하 간단하게 알아보았습니다. 리더 파티션에 장애가 발생하는 상황에서 승급으로 무중단을 지향할지, 데이터 유실을 허락하지 않기 위해 잠시 서비스를 중단할지 선택하는 옵션도 배웠습니다.

다음 시간에는, 클라이언트 메타데이터와 브로커의 통신에 대해 알아보도록 하겠습니다.

image 80



코멘트

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다