gpt4 book ai didi

java - 如何动态扩展Kafka流处理?

转载 作者:太空宇宙 更新时间:2023-11-03 20:53:17 24 4
gpt4 key购买 nike

我有固定数量的主题分区。生产者在一天中的不同时间以不同的速率产生数据。

我想根据一天中的处理时间动态添加消费者,以便我可以尽快处理记录。

例如,我有一个主题的 10 个分区。我想在非高峰时段部署 5 个消费者,在高峰时段部署 20 个消费者。

我的问题是,当我有 20 个消费者时,每个消费者都会收到重复的记录,这是我想避免的。我只想处理唯一记录以加快记录处理速度。

有什么机制可以做到这一点吗?

最佳答案

如果您有 N 个分区,则同一消费者组中最多可以有 N 个消费者,每个消费者都从单个分区读取数据。当消费者少于分区时,一些消费者将从多个分区中读取数据。此外,如果您的消费者多于分区,那么某些消费者将处于非 Activity 状态,并且根本不会收到任何消息。

因此,如果您想启动 20 个消费者,则需要将主题的分区数量增加到至少 20 个,否则,您的 10 个消费者将处于非 Activity 状态。

关于您提到的重复,如果您的所有消费者都属于同一组,那么每条消息只会被消费一次。

总结一下,

  1. 将主题的分区数量增加到 20 个。
  2. 创建根据高峰/非高峰时间创建和终止消费者的机制,并确保当您踢出消费者时,它属于现有的消费者组,以便消息仅被消费一次。

关于java - 如何动态扩展Kafka流处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56174516/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com