Я хотел бы прочитать все сообщения из темы Кафки в запланированный интервал для вычисления некоторого значения глобального индекса.Я делаю что-то вроде этого:
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 ГБ) записей на тему.