인프런 커뮤니티 질문&답변

마뇽님의 프로필 이미지
마뇽

작성한 질문수

[아파치 카프카 애플리케이션 프로그래밍] 개념부터 컨슈머, 프로듀서, 커넥트, 스트림즈까지!

ISR(In-Sync-Replicas)

파티션 복제의 성능이슈는 없나요?

작성

·

172

0

안녕하세요 강의 잘 보고 있습니다.

복제강의 수강중 궁금한점이

리더 - 팔로워 간의 복제시 팔로워에서 리더의 오프셋을 확인해 차이점이 있다면 팔로워로 저장한다고 이해했는데요.
이러한 복제 과정으로 인해 리더파티션에 이슈가 생길만한 케이스가 있는지 궁금합니다.

기본적으로 리더 파티션이 프로듀서 - 컨슈머와의 통신을 담당하기에 팔로워 파티션에서 복제과정을 담당하게 되는 형태인것 같아 문제가 없을것 같긴한데 .. 꼭 이렇게 생각하고 넘어가면 문제가 생기더라구요 ㅎ..
혹시 복제과정이 리더 파티션 성능에 영향을 주게될만한 이슈가 있을지 우려되서 질문드립니다

답변 2

1

데브원영 DVWY님의 프로필 이미지
데브원영 DVWY
지식공유자

안녕하세요.

리더 파티션에 데이터가 쌓이고 나면 나머지 팔로워 파티션이 리더의 오프셋을 보고 데이터를 가져갑니다. 이런 과정 상에서 만약 카프카 프로듀서의 acks를 all로 주게되면 나머지 팔로워 파티션에 데이터가 완전히 저장되기 까지 기다립니다. 그렇기 때문에 acks=all로 프로듀서를 운영하게 되면 복제간 시간이 걸리는점 때문에 성능상 불리할 수도 있는점 참고부탁드립니다.

0

안녕하세요, 인프런 AI 인턴입니다.

마뇽님의 궁금증에 답변 드리겠습니다.

카프카에서 리더와 팔로워 간의 복제 과정은 성능에 영향을 줄 수 있는 몇 가지 요소가 있습니다. 특히, 팔로워가 리더의 데이터를 복제하는 과정에서 네트워크 대역폭, 디스크 IO, 및 시스템 리소스가 복제 효율성에 영향을 줄 수 있습니다.

그러나 카프카는 이러한 성능 문제를 고려하여 몇 가지 방법을 제공합니다. 예를 들어, 데이터 마이그레이션 중 대역폭 사용을 제한하기 위한 “Throttled Replication” 기능을 지원합니다. 이를 통해 관리자는 너무 낮게 설정된 스로틀이 복제 진행에 영향을 주지 않도록 조정할 수 있습니다. 복제 진행 상황 모니터링을 위해 kafka.server:type=FetcherLagMetrics,name=ConsumerLag,clientId=([-.\\w]+),topic=([-.\\w]+),partition=([0-9]+) 메트릭을 사용할 수 있으며, 이는 복제 중인 토픽 파티션의 랙이 지속적으로 줄어드는지 확인할 수 있게 해 줍니다.

이러한 기능을 적절히 활용한다면 리더 파티션의 성능에 미치는 부정적인 영향을 최소화하면서도 효율적인 복제 과정을 유지할 수 있습니다. 따라서, 복제 과정이 리더 파티션의 성능에 영향을 미칠 수 있지만, 카프카는 이러한 상황을 관리할 수 있는 다양한 메커니즘을 제공합니다.

자세한 정보는 카프카 공식 문서에서도 확인하실 수 있습니다.
- 복제 과정에서의 스로틀 조정 관련 정보: Kafka Documentation

이러한 정보가 마뇽님의 궁금증 해소에 도움이 되기를 바랍니다.

마뇽님의 프로필 이미지
마뇽

작성한 질문수

질문하기