hadoop - kafka分区和生产者关系

标签 hadoop apache-kafka kafka-producer-api

我有一个 kafka 集群,其中包含三个代理和一个主题,复制因子为三个和三个分区。我可以看到每个代理都有一份大小相同的所有分区的日志副本。这个主题有两个制作人。

有一天,我将一位制作人的写作量减少了一半。然后我发现三个代理的入站流量都减少了,这是预期的,但只有分区 1 的领导节点的出流量减少了,我不明白。

分区领导者的出站流量因复制而减少。但是每个broker都是一个partition的leader,为什么只有一个leader的出流量减少了呢?有没有可能生产者只写一个分区的内容?虽然我不这么认为。

请帮我解释一下。集群现在运行良好,但我需要了解它以防出现潜在问题。 Inbound Traffic Outbound Traffic

最佳答案

假设您正在为 KafkaProducer 使用 Default Partitioner,这意味着保证将具有相同 key 的两个事件发送到同一分区。

来自 Kafka Documentation

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/

相关文章:

apache-kafka - 何时关闭生产者或消费者

java - Kafka Template 和 kafka producer 有什么区别?

java - 在Google Appengine中使用MapOnlyMapper时出现RetryHandler异常

hadoop - Apache Spark数据建模-我是否更希望使用非规范化或联接来提高查询性能?

r - 在 sparklyr 中断开连接后,spark 数据帧是否会自动删除?如果没有,我们该怎么做?

apache-kafka - KafkaStream createTopic 不尊重 Kafka 服务器的 auto.create.topics.enable 设置

scala - 卡夫卡制片人卡在发送

java - Hadoop 身份验证与 Kerberos 错误

scala - 在 Spark 中以结构化流模式获取 Offset 的消息正在重置

apache-kafka - 一个 kafka 主题可以处理多少个消费者群体?