Kafka ISR
Kafka ISR(In-Sync-Replicas)
ISR은 리더 파티션과 팔로워 파티션이 모두 싱크가 된 상태를 의미합니다. 리더 파티션에서 데이터가 들어오고 offset이 업데이트 된 후에 팔로워 파티션까지 해당 정보가 전달되어지는데 걸리는 시간이 존재합니다. ISR 상태는 이러한 정보가 완전히 전달되어져 팔로워 파티션과 리더 파티션이 동일한 상태를 의미합니다. 만약 replica.lag.time.max.ms값 보다 더 긴 시간동안 팔로워 파티션이 데이터를 가져가지 않는다면 해당 파티션은 ISR상태가 아니게 되고 ISR 그룹에서 퇴출됩니다.
ISR 그룹에 있는 파티션들은 누구나 팔로워로 선출 될 수 있습니다. 만약 리더 파티션이 있는 브로커에서 장애가 날 경우 ISR 그룹에 속해 있는 팔로워 파티션중 한 파티션이 리더 파티션의 지위를 승계받습니다. 이렇게 리더 파티션의 승계를 통해 지속적이고 중단 없는 데이터 처리가 가능해집니다.
물론 unclean.leader.election.enable옵션을 true로 지정하여 ISR그룹에 없는 파티션을 리더로 추대할 수 있습니다. 하지만 이 경우에 데이터의 손실이 있을 수 있습니다. 대신 서비스 중단, 데이터 처리 중단이 일어나지 않는다는 장점이 있습니다.
출처:
아파치카프카 애플리케이션 프로그래밍 with 자바
카프카, 데이터 플랫폼의 최강자
Leave a comment