2016-12-13 73 views
0

나는 3 개의 브로커가있는 카프카 클러스터와 3 개의 파티션과 3 개의 파티션으로 이루어진 복제 요소를 가지고 있습니다. 모든 브로커에는 동일한 크기의 모든 파티션에 대한 로그 사본이 있음을 알 수 있습니다. 이 주제에는 두 명의 제작자가 있습니다.카프카 파티션과 생산자 관계

언젠가 어느 한 프로듀서의 글쓰기 양을 절반으로 줄였습니다. 그런 다음 3 개의 브로커의 인바운드 트래픽이 모두 줄어들었지만 파티션 1의 리더 노드의 트래픽 만 줄어들어 이해가되지 않습니다.

복제로 인해 파티션 리더의 아웃 바운드 트래픽이 감소했습니다. 그러나 각 브로커는 하나의 파티션의 리더이며 왜 한 명의 리더의 아웃 바운드 트래픽이 감소합니까? 제작자가 하나의 파티션에만 내용을 쓸 수 있습니까? 나는 그렇게 생각하지 않는다.

제발 설명해주세요. 클러스터는 현재 정상적으로 작동하고 있지만 문제가 발생할 경우이를 이해해야합니다. Inbound Traffic Outbound Traffic

+1

에 따라 다릅니다. 각 파티션의 오프셋을 확인하여 메시지를 고르게 생성하는지 확인할 수 있습니까? – amethystic

+0

알림을 보내 주셔서 감사합니다. 세 개의 파티션 모두의 로그 크기를 확인했습니다. 사실, 그들은 균등하게 생산되지 않습니다. 이것은 매우 흥미 롭습니다. 불균형은 1 : 6처럼 엄청납니다. 어쩌면 ravthiru가 언급 한 것 때문에 발생합니다. 특정 키를 제거하면 특정 파티션에 대한 데이터가 생성되지 않을 수 있습니다. – billtian

답변

1

같은 키를 가진 두 개의 이벤트가 동일한 파티션에 전송되도록 보장하는 것을 의미 KafkaProducer에 대한 기본 파티션 설정을 사용하는 가정. 모든 읽기 및 Kafka Documentation

에서에서

는 파티션과 그냥 보통의 카프카 소비자 것 으로 리더의 메시지를 소비 팔로워의 지도자에 가서 자신의 로그에 적용 씁니다.

특정 키 또는 키 집합을 건너 뛰면 특정 데이터를 줄일 수 있습니다.

리더의 아웃 바운드 트래픽이 감소한 이유 (추종자가 소비하지 않는 레코드)

+0

감사합니다 Ravthiru. 내 축소화 된 데이터가 특정 키를 제거하여 특정 파티션에 데이터가 없음을 의미합니까? 불균형은 거대합니다 (6 번), 어떻게 그렇게 커질 수 있습니까? 나는 카프카가 다른 파티션들 사이에서 큰 불균형을 가질 수있는 이유는 무엇입니까? – billtian

+0

Kafka 문서 "기본 분할 전략은 해시 (키) % numPartitions"입니다. 이제 파티션이로드되는 방식을 분석 할 수 있습니다. – ravthiru