kafka分区和生产者关系

时间:2016-12-13 03:03:41

标签: hadoop apache-kafka kafka-producer-api

我有一个kafka集群,有三个代理和一个主题,复制因子为三个和三个分区。我可以看到每个代理都有一个具有相同大小的所有分区的日志副本。这个主题有两个生产者。

有一天,我将一位制片人的写作量减少了一半。然后我发现所有三个经纪人'入站流量减少了预期,但只有分区1的领导节点减少了流量,我不明白。

由于复制,分区负责人的出站流量减少了。但是每个经纪人都是一个分区的领导者,为什么只有一个领导者的出站流量减少了?生产者是否可能只将内容写入一个分区?虽然我不这么认为。

请帮我解释一下。群集现在工作正常,但我需要在潜在问题的情况下理解它。 Inbound Traffic Outbound Traffic

1 个答案:

答案 0 :(得分:1)

假设您正在为KafkaProducer使用默认分区程序,这意味着保证将具有相同密钥的两个事件发送到同一分区。

来自Kafka Documentation

  

所有读取和写入都发送给分区和关注者的领导者   像正常的Kafka消费者那样消费来自领导者的消息   并将它们应用到自己的日志中。

您可以通过滑动特定键或一组键来减少数据(来自生产者),这可能意味着没有数据到特定分区。

这解释了为什么领导者的出站流量减少了(没有关注者的记录)