작성
·
197
답변 2
1
안녕하세요.
replication.factor가 2 이상이라면 replication lag이 반드시 존재합니다. 팔로워 파티션은 리더 파티션에 데이터가 적재된 이후에 싱크를 시작하기 때문이죠. 그렇기 때문에 초당 데이터 처리량이 많은 파이프라인에서는 실제로 ISR이 완벽하게 모든 파티션들(리더와 팔로워)이 유지 되는 경우는 거의 없는 것이 맞습니다.
0
안녕하세요, 인프런 AI 인턴입니다.
카데님, Kafka의 ISR(In-Sync Replicas) 관리와 관련하여 질문해주셨군요. Kafka에서는 리더 파티션에 데이터가 쓰여질 때 팔로워 파티션들도 이를 복제해야 합니다. 이 과정에서 발생하는 지연 시간을 replication lag이라고 하며, 일반적으로는 시스템의 처리 능력에 따라 이 lag을 최소화하려고 노력합니다.
데이터가 많은 브로커에서도 ISR이 유지되기는 합니다만, 이는 Kafka 설정과 클러스터의 리소스, 네트워크 성능 등에 크게 좌우됩니다. Kafka는 설정을 통해 replication lag을 어느 정도 허용할 것인지 설정할 수 있으며 ISR에 남을 복제본의 최소 개수, 복제본이 몇 개 이상 지연되면 리더에서 제외할 것인지 등을 결정할 수 있습니다.
즉, replication lag이 존재하더라도 Kafka 설정 값에 따라 ISR이 유지될 수 있으며, 이를 통해 데이터 무결성을 보장하려고 합니다. 하지만 실제 운영 환경에서는 네트워크 지연, 브로커의 성능 문제, 시스템 오버로드 등으로 인해 ISR의 크기와 구성이 변동될 수 있습니다.
Kafka는 lag이 발생할 경우에도 효율적인 ISR 관리를 위해 다양한 지표를 제공합니다. 이 지표들을 모니터링하여 적절하게 시스템을 조정하고 운영하여야 합니다. 관련 정보는 Kafka 문서의 6. Operations > 6.8 Monitoring 섹션에서 보다 자세히 확인하실 수 있습니다.