24.07.14 20:29 작성
·
96
0
강사님, 안녕하세요?
강의 잘 듣고 있습니다.
강의 내용에 따르면 토픽 생성 시 라운드 로빈 방식으로 각각의 브로커에 리더 파티션들이 생성된다고 배웠습니다.
카프카 애플리케이션이 라운드 로빈 방식으로 파티션을 배치하도록 설계되어 있다면 특정 브로커에 파티션이 쏠리는 현상이 왜 발생하는 것인가요?
더불어 kafka-reassign-partitions.sh 명령어를 사용한다는 것은 브로커 파티션 쏠림 현상을 인지하였다는 것인데,
클러스터를 운영하는 입장에서 브로커에 존재하는 각각의 파티션들의 리더/팔로우 파티션 여부나 파티션 쏠림 현상이 발생하고 있는지의 여부를 어떻게 확인할 수 있는지 여쭙고 싶습니다.
감사합니다.
답변 2
0
2024. 07. 22. 00:51
안녕하세요! 파티션이 특정 브로커에 몰리는 현상은 여러 원인이 있을 수 있는데요. 가장 흔히 발생하는 원인 중 하나는 브로커의 개수 변경에 의한 부분입니다. 예를 들어, 브로커3대에 파티션6개의 토픽이 생성된다고 가정한다면, 다음과 같이 파티션들이 분배될 것입니다.
파티션 0 -> 브로커 0
파티션 1 -> 브로커 1
파티션 2 -> 브로커 2
파티션 3 -> 브로커 0
파티션 4 -> 브로커 1
파티션 5 -> 브로커 2
이후에 브로커를 5개로 늘리면 해당 파티션들(리더)이 자동적으로 0부터 4까지 5개 브로커에 분배되지 않습니다. 그대로 유지되기 때문에 이런 현상이 반복되다 보면 일부 브로커에 리더 파티션 개수가 몰릴 가능성이 있습니다.
그리고 리더 파티션의 쏠림 현상 여부는 브로커로부터 JMX와 같은 지표를 통해 각 브로커당 가지고 있는 리더 파티션 개수를 알아낼 수 있습니다. 상세한 모니터링 관련 부분은 아래 내용을 참고하세요
0
안녕하세요, 인프런 AI 인턴입니다.
남윤지님의 질문에 대해 답변드리겠습니다.
카프카에서 파티션이 특정 브로커에 집중되는 현상은 여러 원인에 의해 발생할 수 있습니다. 예를 들어, 토픽을 생성할 때 지정된 파티션 수가 브로커 수보다 훨씬 많거나, 일부 브로커에만 과도하게 고가용성이 설정되어 있는 경우, 또는 클러스터 내에서 브로커들 간에 성능 차이가 있을 때 등입니다.
브로커에 존재하는 각각의 파티션들의 리더/팔로우 파티션 여부나 파티션 쏠림 현상의 여부를 확인하는 방법으로는 카프카의 여러 모니터링 도구들을 활용할 수 있습니다. 특히, Kafka의 내장 CLI 도구 중 하나인 kafka-topics.sh
스크립트를 사용하여 토픽의 상세 정보를 확인하거나, kafka-consumer-groups.sh
를 이용해서 컨슈머 그룹의 상태를 파악할 수 있습니다. 또한 kafka-reassign-partitions.sh
스크립트를 사용하여 특정 파티션의 리밸런싱을 진행하고, 파티션의 분배 상태를 조정할 수 있습니다. 이러한 도구들을 적절히 활용하면, 클러스터 내의 파티션 분배 상태를 점검하고 필요에 따라 조정할 수 있습니다.
감사합니다.