Akka.Kafka - 警告消息 - 恢复分区

Aru*_*nan 5 scala akka apache-kafka akka-stream kafka-consumer-api

我正在继续调试消息,因为它恢复了所有主题的分区.如下.此消息在我的服务器上连续打印每毫秒.

08:44:34.850 [default-akka.kafka.default-dispatcher-10] DEBUG o.a.k.clients.consumer.KafkaConsumer - Resuming partition test222-7
08:44:34.850 [default-akka.kafka.default-dispatcher-10] DEBUG o.a.k.clients.consumer.KafkaConsumer - Resuming partition test222-6
08:44:34.850 [default-akka.kafka.default-dispatcher-10] DEBUG o.a.k.clients.consumer.KafkaConsumer - Resuming partition test222-9
08:44:34.850 [default-akka.kafka.default-dispatcher-10] DEBUG o.a.k.clients.consumer.KafkaConsumer - Resuming partition test222-8
Run Code Online (Sandbox Code Playgroud)

这是代码

val zookeeperHost = "localhost"
val zookeeperPort = "9092"
// Kafka queue settings
 val consumerSettings = ConsumerSettings(system, new ByteArrayDeserializer, new StringDeserializer)
       .withBootstrapServers(zookeeperHost + ":" + zookeeperPort)
       .withGroupId((groupName))
       .withProperty(ConsumerConfig.AUTO_OFFSET_RESET_CONFIG, "latest")

 // Streaming the Messages from Kafka queue
 Consumer.committableSource(consumerSettings, Subscriptions.topics(topicName))
     .map(msg => {
       consumed(msg.record.value)
     })
     .runWith(Sink.ignore)
Run Code Online (Sandbox Code Playgroud)

请帮助正确执行分区以停止DEBUG消息.

ame*_*tic 1

似乎反应式卡夫卡代码在开始获取之前恢复每个分区:

consumer.assignment().asScala.foreach { tp =>
  if (partitionsToFetch.contains(tp)) consumer.resume(java.util.Collections.singleton(tp))
  else consumer.pause(java.util.Collections.singleton(tp))
}
def tryPoll{...}
checkNoResult(tryPoll(0))
Run Code Online (Sandbox Code Playgroud)

如果分区之前没有暂停,那么 KafkaConsumer.resume 方法是无操作的。