我在Kafka遇到过这样一种情况,生产者发布信息的速度比消费者消费的速度要快得多。我必须在Kafka实现背压,以便进一步消费和处理。请让我知道如何在spark和普通JavaAPI中实现。
bwleehnv1#
您可以通过以下方式禁用自动提交 enable.auto.commit=false 仅当使用者操作完成时才提交。这样消费者会很慢,但kafka知道消费者处理了多少条消息,还配置了轮询间隔 max.poll.interval.ms 以及在每次轮询中使用的消息 max.poll.records 你应该很好。
enable.auto.commit=false
max.poll.interval.ms
max.poll.records
pdtvr36n2#
Kafka是这里的监管者。你以你想要的任何速度生产Kafka,扩展经纪人以适应摄取率。你想怎么消费就怎么消费;Kafka将数据持久化,并跟踪消费者在读取数据时的偏移量。
2条答案
按热度按时间bwleehnv1#
您可以通过以下方式禁用自动提交
enable.auto.commit=false
仅当使用者操作完成时才提交。这样消费者会很慢,但kafka知道消费者处理了多少条消息,还配置了轮询间隔max.poll.interval.ms
以及在每次轮询中使用的消息max.poll.records
你应该很好。pdtvr36n2#
Kafka是这里的监管者。你以你想要的任何速度生产Kafka,扩展经纪人以适应摄取率。你想怎么消费就怎么消费;Kafka将数据持久化,并跟踪消费者在读取数据时的偏移量。