在kafka用户端使用assign代替subscribe

时间:2018-08-28 06:58:16

标签: apache-kafka

当我有1000个Web服务器并且所有人都对某个主题的消息感兴趣时。我正在考虑将特定数据写入主题的特定分区,并且对该特定分区中的数据感兴趣的服务器超过1000台。实现分配而不是订阅有多好。这种方法的可扩展性如何。我可以分配1000多个使用者以从特定分区读取数据。

1 个答案:

答案 0 :(得分:0)

在卡夫卡,每个消费者都属于一个消费者群体。当Kafka生产者向特定组发送消息时,分区的记录将传递给单个消费者。

如果分区数大于使用方数,则某些使用方将使用多个分区中的数据。另一方面,如果使用者的数量大于分区的数量,则某些使用者将处于非活动状态,因为它们将不接收任何数据。

您不能有多个使用者-在同一使用者组内-消耗单个分区中的数据。因此,为了使用N个使用者使用同一分区中的数据,您还需要创建N个不同的使用者组。

请注意,分区增强了Kafka集群内的并行性。如果您创建了数千个使用者以仅从一个分区使用数据,那么我怀疑您将失去某种程度的并行性。


订阅与分配

订阅利用了消费群体; Kafka协调器将分配发送给使用者,订阅的主题分区将分配给该组内的实例。

分配强制分配给主题列表。