扩展 kafka 消费者应用程序



>假设我有一个消费者组订阅了4 个主题,每个主题的分区是:-

编辑:

  1. 第一个主题 => 5 个分区
  2. 第二个主题 => 3 个分区
  3. 第三个主题 => 2 个分区
  4. 第四个主题 => 1 个分区

分区总数 = 11。因此,我可以运行多少个应用程序。

5(max number of partitions in input topics) or 11?

在 kafka 中,扩展使用者取决于分区号。

假设您有一个包含 3 个分区的主题。你有 2 个不同的消费者应用程序(不同的消费者组)执行不同的工作。

您可以将每个使用者组的使用者数量扩展到最多 3 个。

  • 单个使用者(使用者组 A)可以使用来自 3 的消息 分区。
  • 两个消费者(同一消费群体)不能消费单个 分区。

看图片 : https://hadoopabcd.files.wordpress.com/2015/04/consumer-group.png

阅读更多关于消费者团体博客系列:https://dzone.com/articles/understanding-kafka-consumer-groups-and-consumer-l

在理想情况下,消费者组中的使用者数量应等于分区数量。如果不是这种情况,那么您可以拥有多个消费者组 kafka 提供的功能是来自不同消费者组的 2 个消费者可以从同一分区读取。这完全取决于您的资源,您有多少资源用于运行消费者。

假设您有一个应用程序,该应用程序需要从 Kafka 主题读取消息,对它们运行一些验证,并将结果写入另一个数据存储。在这种情况下,应用程序将创建一个使用者对象,订阅相应的主题,并开始接收消息,验证它们并写入结果。这可能在一段时间内工作得很好,但是如果生产者向主题写入消息的速率超过应用程序可以验证它们的速率,该怎么办?如果您仅限于单个使用者读取和处理数据,您的应用程序可能会越来越落后,无法跟上传入消息的速率。显然,有必要从主题上扩展消费。就像多个生产者可以写入同一个主题一样,我们需要允许多个消费者从同一个主题读取,在他们之间拆分数据。

Kafka 消费者通常是消费者群体的一部分。当多个使用者订阅一个主题并属于同一个消费组时,该组中的每个使用者将收到来自主题中不同分区子集的消息。

请参考此 https://www.safaribooksonline.com/library/view/kafka-the-definitive/9781491936153/ch04.html

相关内容

最新更新