我有一个包含3个代理的kafka集群和一个包含8个分区的主题。一个用java编写的生产者,使用了spring boot,没有自定义的负载均衡规则。这意味着它应该进行循环调度。
问题是有一些分区无法接收消息到其中。我检查了4个消费者正在接收的内容,即使他们正在处理所有的消息,也有一个消费者一直处于空闲状态,因为它只收到了一条消息。
可能的问题是什么?我使用的Kafka版本是0.10.1.1,另外注意,在这种情况下,我没有使用分区的副本
发布于 2020-05-29 14:54:23
,这意味着它应该进行循环调度。
如果您的Kafka消息中没有keys,它将只执行循环。否则,将根据密钥的哈希值对消息进行分区:
hash(key) % number_of_partitions这并不是没有意义的,这将导致一些分区根本不接收任何消息。想象一下这样一种情况,您使用的键只能有两个不同的值。在这种情况下,您的所有数据将仅流向两个分区,而与主题中的分区数量无关。
https://stackoverflow.com/questions/62078845
复制相似问题