我在Scala中使用Alpakka-kafka来消费Kafka主题。这是我的代码:
val kafkaConsumerSettings: ConsumerSettings[String, String] =
ConsumerSettings(actorSystem, new StringDeserializer, new StringDeserializer)
.withBootstrapServers(kafkaConfig.server)
.withGroupId(kafkaConfig.group)
.withProperties(
ConsumerConfig.MAX_POLL_RECORDS_CONFIG -> "100",
ConsumerConfig.AUTO_OFFSET_RESET_CONFIG -> "earliest",
CommonClientConfigs.SECURITY_PROTOCOL_CONFIG -> "SSL"
)
Consumer
.plainSource(kafkaConsumerSettings, Subscriptions.topics(kafkaConfig.topic))
.runWith(Sink.foreach(println))
但是,使用者仅从主题中第一条未提交的消息开始轮询。我希望始终从偏移量0开始,而不考虑提交的消息。 对于Alpakka Consumer,如何手动指定偏移量?
答案 0 :(得分:1)
我认为您想添加几个配置条目:
ConsumerConfig.ENABLE_AUTO_COMMIT_CONFIG -> False
,因此您的工作永远不会保存任何偏移量
ConsumerConfig.AUTO_OFFSET_RESET_CONFIG -> "earliest"
,因此您的工作从头开始。
如果您的工作过去曾经提交过偏移,则可能必须将其偏移重置为最早的时间。