当前位置: 首页 > 知识库问答 >
问题:

用于从分区读取记录的Kafka使用者逻辑

洪高阳
2023-03-14

当Kafka消费者从其分配的分区读取数据时,消费者提取线程是否使用任何特定的逻辑来从分区中获取数据?例如,读取器线程是否做了任何逻辑/努力来平等/一致地读取分配的分区?它是否从最滞后的分区获取更多记录?还是只是简单的循环式逻辑?

有关于消费逻辑的详细文档吗?

谢谢你。

共有1个答案

隗驰
2023-03-14

顺序似乎是不确定的。我引述这里的讨论。Kafka消费者的官方留档也提供了更多信息

如果消费者被分配了多个分区来获取数据,它将尝试同时从所有分区中消费,从而有效地赋予这些分区相同的消费优先级。然而,在某些情况下,消费者可能希望首先全速从分配的分区的某个子集获取数据,并且只有在这些分区可以使用的数据很少或没有数据时才开始获取其他分区。

其中一种情况是流处理,处理器从两个主题获取数据,并对这两个流执行连接。当其中一个主题长期落后于另一个主题时,处理器会暂停从前面的主题提取,以便让滞后的流赶上。另一个例子是引导消费者启动,其中有很多历史数据要跟上,应用程序通常希望在获取其他主题之前先获取一些主题的最新数据。

 类似资料:
  • 我使用新的API创建了一个kafka消费者(http://kafka.apache.org/090/javadoc/index.html?org/apache/kafka/clients/consumer/kafkaConsumer.html) 当前,使用者正在从最小的偏移量开始读取主题中的消息。我想重写这个以读取最新的偏移量。有什么关于如何做到这一点的指示吗?

  • 我们计划编写一个Kafka消费者(java),它读取Kafka队列以执行消息中的操作。

  • 这是一个场景:我知道,使用与Spring kafka相关的最新API(如Spring集成kafka 2.10),我们可以执行以下操作: 以及来自与相同kafka主题相关的不同分区的读取。 我想知道我们是否可以使用同样的方法,例如spsping-集成-Kafka1.3.1 我没有找到任何关于如何做到这一点的提示(我对xml版本很感兴趣)。

  • 我们希望在读取消息表单kafka时实现并行性。因此我们想在flinkkafkaconsumer中指定分区号。它将从kafka中的所有分区读取消息,而不是特定的分区号。以下是示例代码: 请建议任何更好的选择来获得并行性。

  • 我们正在使用Kafka流将数据写入接收器主题。我正在运行一个avro消费者命令行来检查接收器主题中是否有数据: bin/kafka-avro控制台-消费者-主题sink.output.topic-从开始-新消费者-引导-服务器 当我在kafka streams应用程序运行时同时运行消费者时,我会看到数据,但如果我停止消费者并在几分钟后再次运行,我不会看到任何数据。几乎没有可能: 1) 这是因为Ka

  • 我使用flink和Kafka创建了一个流媒体程序,用于流媒体mongodb oplog。根据与Flink支持团队的讨论,流的顺序不能通过kafka分区来保证。我已经创建了N个kafka分区,并希望每个分区创建N个flink kafka消费者,所以流的顺序应该至少在特定的分区中保持。请建议我是否可以创建分区特定的flink kafka消费者? 我正在使用env.setParallelism(N)进行