我有一个 kafka 集群,其中包含三个代理和一个主题,复制因子为三个和三个分区。我可以看到每个代理都有一份大小相同的所有分区的日志副本。这个主题有两个制作人。
有一天,我将一位制作人的写作量减少了一半。然后我发现三个代理的入站流量都减少了,这是预期的,但只有分区 1 的领导节点的出流量减少了,我不明白。
分区领导者的出站流量因复制而减少。但是每个broker都是一个partition的leader,为什么只有一个leader的出流量减少了呢?有没有可能生产者只写一个分区的内容?虽然我不这么认为。
最佳答案
假设您正在为 KafkaProducer 使用 Default Partitioner,这意味着保证将具有相同 key 的两个事件发送到同一分区。
All reads and writes go to the leader of the partition and Followers consume messages from the leader just as a normal Kafka consumer would and apply them to their own log.
您可以通过跳过特定键或一组键来减少数据(来自生产者),这可能意味着特定分区没有数据。
这就回答了为什么领导者的出站流量减少了(没有记录供追随者消费)
关于hadoop - kafka分区和生产者关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41113107/