12

我在 Kafka 中遇到过一种情况,即生产者发布消息的速度远远高于消费者的消费速度。我必须在kafka中实现背压实现,以便进一步消费和处理。

请让我知道如何在 spark 和普通的 java api 中实现。

4

2 回答 2

20

卡夫卡在这里充当监管者。你可以按照你想要的任何速率生产到 Kafka,将代理向外扩展以适应摄取速率。然后,您可以随心所欲地消费;Kafka 持久化数据并跟踪消费者在读取数据时的偏移量。

于 2018-04-05T06:11:55.943 回答
2

您可以通过消费者禁用自动提交,enable.auto.commit=false并仅在消费者操作完成时提交。这样消费者会很慢,但 Kafka 知道消费者处理了多少消息,还配置轮询间隔max.poll.interval.ms和在每次轮询中使用的消息max.poll.records应该很好。

于 2018-04-05T14:12:25.423 回答