![[카프카] 4. 아파치 카프카의 ISR(In-Sync-Replicas) 1 아파치 카프카의 ISR(In-Sync-Replicas)](http://allhoneytip.com/wp-content/uploads/2023/07/image-72-optimized.png)
지난 시간에 이어, 아파치 카프카의 ISR(In-Sync-Replicas)에 대해 알아보겠습니다. ISR은 리더 파티션과 팔로워 파티션이 모두 Sync된 상태를 의미합니다. 복제 개수가 2인 토픽(리더 파티션 1개와 팔로워 파티션 1개가 존재)으로 가정해보면, 팔로워 파티션에 리더 파티션의 모든 오프셋이 존재해야 동기화가 완료된 상태라고 할 수 있습니다.
![[카프카] 4. 아파치 카프카의 ISR(In-Sync-Replicas) 2 image 28](http://allhoneytip.com/wp-content/uploads/2023/08/image-28-1024x463-optimized.png)
ISR이 완전하지 못하다면?
팔로워 파티션이 리더 파티션의 오프셋을 모두 복제하지 못한 상태로 서비스가 지속된다면, 데이터가 유실될 수 있습니다. 여기서 한 가지 옵션으로 운영 방법을 결정할 수 있는데요, 바로 unclean.leader.election.enable 입니다.
- unclean.leader.election.enable=true: 유실을 감수하고 복제가 덜된 팔로워 파티션을 리더로 승급합니다. 즉, 복제되지 않은 오프셋을 버리고 서비스를 계속 재개하는 것이죠.
- unclean.leader.election.enable=false: 유실을 허용하지 안흣빈다. 해당 브로커가 복구되고 팔로워 파티션에 오프셋 복제가 완벽히 완료될 때까지 서비스를 중단합니다. 금융 서비스 같은 경우, false 처리가 요구된다고 할 수 있죠.
마치며
이번 시간에는, ISR(In-Sync-Replicas)에 대하 간단하게 알아보았습니다. 리더 파티션에 장애가 발생하는 상황에서 승급으로 무중단을 지향할지, 데이터 유실을 허락하지 않기 위해 잠시 서비스를 중단할지 선택하는 옵션도 배웠습니다.
다음 시간에는, 클라이언트 메타데이터와 브로커의 통신에 대해 알아보도록 하겠습니다.
![[카프카] 4. 아파치 카프카의 ISR(In-Sync-Replicas) 3 image 80](http://allhoneytip.com/wp-content/uploads/2023/07/image-80-1024x328-optimized.png)
답글 남기기