【发布时间】:2019-10-04 02:00:39
【问题描述】:
我有一个主题的固定数量的分区。生产者在一天中的不同时间以不同的速度生成数据。
我想根据一天中的处理时间动态添加消费者,以便我可以尽快处理记录。
例如,我有一个主题的 10 个分区。我想在非高峰时间部署 5 个消费者,在高峰时间部署 20 个消费者。
我的问题是,当我有 20 个消费者时,每个消费者都会收到重复的记录,我想避免这种情况。我只想处理唯一记录以加快记录处理速度。
有没有什么机制可以做到这一点?
【问题讨论】:
-
如果在同一个消费者组中有 10 个分区的 20 个消费者,那么实际上只有 10 个消费者可以工作。其他消费者将闲置,因此,您不会得到重复的记录(至少,因为消费者计数)。当消费者没有提交已处理分区的偏移量并被分配到另一个分区时,重复消息的问题可能来自重新平衡过程。为避免这种情况,您可能需要使用 ConsumerRebalanceListener
标签: java python apache-kafka kafka-consumer-api