如何动态扩展Kafka流处理?

2024-04-26 11:16:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我对一个主题有固定数量的分区。生产商在一天的不同时间以不同的速度生产数据。你知道吗

我想根据一天中的处理时间动态添加消费者,这样我就可以以最快的速度处理记录。你知道吗

例如,我有一个主题的10个分区。我想为非高峰时间部署5个消费者,为高峰时间部署20个消费者。你知道吗

我的问题是,当我将有20个消费者,每个消费者将收到重复的记录,我想避免。我只想处理唯一的记录以加快记录处理速度。你知道吗

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


Tags: 数据主题数量部署记录时间消费者动态
1条回答
网友
1楼 · 发布于 2024-04-26 11:16:51

如果有N个分区,那么在同一个使用者组中最多可以有N个使用者,每个使用者都从单个分区读取数据。当使用者少于分区时,一些使用者将从多个分区读取数据。另外,如果使用者比分区多,则某些使用者将处于非活动状态,并且根本不会收到任何消息。你知道吗

因此,如果要启动20个使用者,则需要将主题的分区数增加到至少20个,否则,10个使用者将处于非活动状态。你知道吗

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

总而言之

  1. 将主题的分区数增加到20。你知道吗
  2. 创建基于高峰/非高峰时间创建和终止消费者的机制,并确保当您启动消费者时,它属于现有消费者组,以便消息只被消费一次。你知道吗

相关问题 更多 >