如何在单个组中按需增加KAFKA消费者

时间:2019-05-06 06:14:31

标签: apache-kafka kafka-consumer-api

让我们说我们在kafka中有一个分区为5的主题“ topic-1”。 消费者组A,每个分区有5个消费者附加到“ topic-1”。由于工作量大,因此发布了大量消息。现在我们要扩大消费者/在Group-A中添加更多消费者以处理消息。

如何增加同一组中的消费者ON_DEMAND? 有什么办法可以通过编码做到这一点?这样每个消费者都可以使用一条消息。 一旦负载减少,关闭的用户就不会多了。

2 个答案:

答案 0 :(得分:0)

Kafka框架建议使用者的数量与分区的数量相对应。使用方数量的增加将无济于事,因为您每个分区将有一个使用方,而其余分区将保持空闲。如果需要加快速度,可以从Kafka读取数据并在另一个线程中处理它们。您可以按此数量的处理线程进行扩展,并且需要自己进行编程。

答案 1 :(得分:0)

  • 我建议在使用某些分区作为缓冲区时 负载增加。
  • 例如如果有5个分区足以应付正常负载,我会 建议针对该主题有15个分区,但只有5个消费者 一开始就给他们。
  • 然后,当负载增加时,最好在其他机器上不断增加消耗器,直到负载减少为止
  • 您可以让kubernetes为您自动缩放