卡夫卡消费者不是从
问题描述:
我创建了一个卡夫卡话题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
有谁知道为什么它的发生..?
答
我这周有同时使用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
也能修复它。
显示你消费的例子吗?你也可以使用'kafkacat'来验证预期的行为。 – objectuser
我有一个类似的问题,但我们有32个分区,它只是从分区7. –