为什么kakfa主题分区未收到消息?

时间:2020-05-29 04:39:09

标签: java spring-boot apache-kafka spring-kafka

我有一个包含3个代理的kafka集群和一个具有8个分区的主题。 使用Spring Boot用Java编写的生产者,没有用于负载平衡的自定义规则。这意味着它应该进行轮询。

问题是有些分区没有收到消息。我弄清楚了检查这4个使用者正在接收什么,甚至他们正在处理所有消息,由于该使用者仅接收到一条消息,所以始终有一个使用者处于空闲状态。

可能是什么问题? 我正在使用的Kafka版本是0.10.1.1 在这种情况下,请注意,我没有为分区使用副本

1 个答案:

答案 0 :(得分:1)

这意味着它应该进行循环轮询。

如果您的Kafka邮件中没有keys,它将仅进行循环轮询。否则,将根据密钥的哈希值对消息进行分区:

hash(key) % number_of_partitions

这并非不常见,这将导致某些分区完全不接收任何消息。设想一种情况,您使用的键只能具有两个不同的值。在这种情况下,所有数据将仅流入两个分区,而与主题中的分区数无关。