我在Kafka遇到一种情况,即生产者以比消费者消费率高得多的速度发布消息。我必须在kafka中实施背压实施,以便进一步消费和处理。
请让我知道如何在spark和普通的java api中实现。
答案 0 :(得分:4)
卡夫卡在这里担任监管者。你以任何你想要的速度生产到Kafka,扩展经纪人以适应摄取率。然后你可以随心所欲地消费; Kafka持久保存数据并跟踪消费者在他们阅读的数据中的偏移量。
答案 1 :(得分:0)
您可以在使用者上禁用enable.auto.commit=false
的自动提交,并仅在使用者操作完成时提交。这样消费者会很慢,但Kafka知道消费者处理了多少消息,同时使用max.poll.interval.ms
配置轮询间隔,并且使用max.poll.records
在每次轮询中消费的消息应该是好的。