【问题标题】:How to implement per partition polling with the KafkaConsumer?如何使用 KafkaConsumer 实现每个分区轮询?
【发布时间】:2018-08-03 15:30:40
【问题描述】:

我正在尝试基于每个分区从 Kafka 消费。我正在使用KafkaConsumer api 来执行此操作。我看到提供了 pauseresume 方法,从文档中我可以得出这是我想要的行为。

暂停从请求的分区中提取。未来对 poll(long) 的调用将不会从这些分区返回任何记录,直到使用 resume(Collection) 恢复它们。请注意,此方法不影响分区订阅。特别是在使用自动分配时,它不会导致组重新平衡。

我担心的是我不会间歇性地暂停和恢复KafkaConsumer,而是暂停所有分区,除了我想从中消费的分区。我担心暂停调用代价高昂,并且会导致吞吐量问题。

我不确定这是否是从KafkaConsumer 实现每个分区消耗的正确方法,因此任何想法都会受到赞赏。

【问题讨论】:

  • 你为什么要从特定分区消费?

标签: apache-kafka kafka-consumer-api


【解决方案1】:

您可以使用KafkaConsumer 类的assign 方法来指定要从中消费的分区。 Pauseresume 方法将分区集合作为参数,因此您可以暂停或恢复特定的分区集合。

【讨论】:

  • 暂停一项代价高昂的操作?如果我连续快速暂停和取消暂停分区会很糟糕吗?
  • 它并不昂贵,但您最好描述一下您要解决的问题。可能还有另一种解决方案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-01-08
  • 2016-03-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-11
  • 2017-09-12
相关资源
最近更新 更多