卡夫卡消费者不是从

问题描述:

我创建了一个卡夫卡话题10个分区的所有分区消费消息,并试图通过一个单一的卡夫卡消费者消费消息。但是,卡夫卡消费者不会阅读所有分区的消息。更具体地说,它仅消费来自5个特定分区的消息。 实施例:消费者消费消息从[0,1,2,3,4]只。如果它重新开始消费来自[5,6,7,8,9]的消息,那么它将仅消耗来自这些分区的消息。 这里是kafka-consumer-offset-checker.sh命令的输出卡夫卡消费者不是从

Group|Topic | Pid | Offset | logSize| Lag  | Owner 
GRP1 | topic1 | 0 | 128  | 175 | 47  | none 
GRP1 | topic1 | 1 | 117  | 146 | 29  | none 
GRP1 | topic1 | 2 | 62  | 87  | 25  | none 
GRP1 | topic1 | 3 | 101  | 143 | 42  | none 
GRP1 | topic1 | 4 | 104  | 145 | 41  | none 
GRP1 | topic1 | 5 | 118  | 118 | 0   | none 
GRP1 | topic1 | 6 | 111  | 111 | 0   | none 
GRP1 | topic1 | 7 | 161  | 161 | 0   | none 
GRP1 | topic1 | 8 | 144  | 144 | 0   | none 
GRP1 | topic1 | 9 | 171  | 171 | 0   | none 

有谁知道为什么它的发生..?

+0

显示你消费的例子吗?你也可以使用'kafkacat'来验证预期的行为。 – objectuser

+0

我有一个类似的问题,但我们有32个分区,它只是从分区7. –

我这周有同时使用spark streaming从卡夫卡话题32个分区读取类似的问题。具体而言,我们使用由apache org.apache.spark.streaming.kafka010.*提供的spark kafka流类。

我们只能从单个分区消耗。这个问题是因为我们使用我们的jar包含了kafka版本0.10.1.0。即使我们的群集位于0.10.1.0上,恢复到0.10.0.1也能修复它。

+0

阅读我渐渐因为消费者的两个实例,这都拿到,由于一些部署问题创造了这个问题。它解决了我修复构建文件。我正在使用0.9.x jar。 – Manu

+0

是的,听起来像我们的问题并不相同。很高兴你想出来了。 –

+0

@NathanLoyer我也面临同样的问题,我的卡夫卡经纪人版本是0.10.2,我的卡夫卡jar版本是0.10.2。所以我应该使用较旧的卡夫卡jar版本。这将解决问题,或者我应该尝试其他方法。 – Abhimanyu