我创建了一个带有10个分区的Kafka主题,并尝试通过单个Kafka消费者来消费消息。但是,kafka consumer并不是从所有分区读取消息。更具体地说,它只使用来自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个分区的Kafaka主题时也遇到了类似的问题。具体地说,我们使用了apache org.apache.spark.streaming.kafka010.*提供的spark kafka流类。
我们只能从一个分区进行消费。这个问题是因为我们在JAR中包含了kafka版本0.10.1.0
。恢复到0.10.0.1
修复了它,即使我们的集群位于0.10.1.0
上。
我有一个名为“test-topic”的主题,有3个分区。 当我启动一个将group-id设置为“test-group”的使用者(consumer-1)时,它连接并读取主题上的所有分区。到目前为止还好。 当我在同一个组中启动另一个消费者(consumer-2)时,问题就出现了。我希望在两个消费者之间划分分区时能够重新平衡,例如,消费者-1得到分区0和2,消费者-2得到分区1。这种情况不会发生,当然我
假设在Kafka中,我有一个主题“A”的4个分区,并且我有20个消费者组“AC”的消费者。我不需要任何排序,但我想通过扩展我的消费者实例来更快地处理消息。请注意,所有消息都是独立的,可以独立处理。 我查看了消费者配置分区。分配策略,但不确定是否可以根据消息可用性实现消费者到分区的动态分配。
问题内容: 我正在使用KafkaConsumer 0.10 Java api。我想从特定的分区和特定的偏移量中消费。我抬起头,发现有一个搜索方法,但是抛出异常。任何人都有类似的用例或解决方案? 码: 例外 问题答案: 你可以之前,你首先需要一个主题 或 主题,以消费者的分区。也请记住,这和懒惰- 这样,你也需要做一个“虚拟来电”,以才可以使用。 注意:从Kafka 2.0开始,新版本是异步的,不能
我有4个分区和4个消费者(例如A、B、C、D)。如何使用使用者组配置哪个使用者将从哪个分区读取数据。我用的是Kafka的春靴。
我有一个Kafka主题,目前有3个分区。我希望我的消费者从同一个分区读取,但每条消息都应该以循环方式发送给不同的消费者。有可能实现吗?
我发现分区“Tracking-3”上的消息没有被消耗!! 问题每次都会重现,在新分配的分区中有一些消息丢失,你能有什么建议吗?请帮帮我,谢谢