[英]Kafka consumer properties from the beginning in a topic
我正在嘗試編寫一個 Kafka 消費者從一開始就使用這些消息。 我可以使用 --from-beginning 從控制台消費者做同樣的事情
但我在 JAVA API 中找不到相應的屬性。
def consumeFromKafka(topic: String) = {
val props = new Properties()
props.put("bootstrap.servers", "localhost:9092")
props.put("key.deserializer", "org.apache.kafka.common.serialization.StringDeserializer")
props.put("value.deserializer", "org.apache.kafka.common.serialization.StringDeserializer")
props.put("auto.offset.reset", "latest")
props.put("group.id", "consumer-group")
val consumer: KafkaConsumer[String, String] = new KafkaConsumer[String, String](props)
consumer.subscribe(util.Arrays.asList(topic))
while (true) {
val record = consumer.poll(1000).asScala
for (data <- record.iterator)
println(data.value())
}
}
還有一個關於 Avro 消息的 value.deserializer 應該是什么的問題?
kafka-console-consumer
中使用的影響earliest
--from-beginning
可以通過將auto.offset.reset
設置為 early 來實現。 與唯一/新group.id
結合使用具有相同的效果。
基本上,您想創建一個新的消費者組(通過group.id
),並且由於 Kafka Broker 不知道該消費者組,它會根據配置auto.offset.reset
自動重置該消費者組的偏移量。 當設置為earliest
時,它將從頭開始。 當設置為latest
時,它會等待新的傳入數據。
關於 Avro 反序列化, 這可能會有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.