Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala 卡夫卡正在阅读该主题的所有信息_Scala_Apache Kafka_Kafka Consumer Api - Fatal编程技术网

Scala 卡夫卡正在阅读该主题的所有信息

Scala 卡夫卡正在阅读该主题的所有信息,scala,apache-kafka,kafka-consumer-api,Scala,Apache Kafka,Kafka Consumer Api,我想在预定的时间间隔内阅读卡夫卡主题中的所有消息,以计算一些全局索引值。我正在做这样的事情: props.put("key.deserializer", "org.apache.kafka.common.serialization.StringDeserializer") props.put("value.deserializer", "org.apache.kafka.common.serialization.StringDeserializer") props.put("group.

我想在预定的时间间隔内阅读卡夫卡主题中的所有消息,以计算一些全局索引值。我正在做这样的事情:

props.put("key.deserializer", "org.apache.kafka.common.serialization.StringDeserializer")
  props.put("value.deserializer", "org.apache.kafka.common.serialization.StringDeserializer")
  props.put("group.id", "test")
  props.put(ConsumerConfig.AUTO_OFFSET_RESET_CONFIG, "earliest")
  props.put(ConsumerConfig.MAX_POLL_RECORDS_CONFIG,Int.MaxValue.toString)

  val consumer = new KafkaConsumer[String, String](props)
  consumer.subscribe(util.Collections.singletonList(TOPIC))
  consumer.poll(10000)
  consumer.seekToBeginning(consumer.assignment())
   val records = consumer.poll(10000)

通过这种机制,我可以获得所有记录,但这是一种有效的方法吗?每个主题大约有20000000(2.1 GB)的记录。

你可能会考虑卡夫卡流库来做这个。它支持不同类型的窗口

  • 翻滚时间窗
  • 跳频时间窗
  • 滑动时间窗
  • 会话窗口
  • 您可以使用滚动窗口捕获给定内部索引中的事件,并计算全局索引