kafka是否为每个消费者创建单独的连接?

时间:2019-02-27 14:16:47

标签: apache-kafka kafka-consumer-api kafka-producer-api

在我的应用程序中,我将使用来自100多个主题的数据。我应该为每个主题创建一个消费者还是从所有主题中选择一个消费者? 创建100个使用者将创建100个与kafka的TCP连接,还是仅打开几个连接并重新使用它们?

谢谢!

1 个答案:

答案 0 :(得分:0)

  

我应该为每个主题创建一个消费者,还是从所有主题中选择一个消费者?

首先,是的,一个消费者有可能从多个主题中检索数据。

    实际上,
  • subscribe()方法(其中之一)要求使用List of Topics 作为参数。

  • assign()方法也要求一个List of TopicPartitions,它可能来自同一主题,也可能来自多个主题。

关于您的“ 我应该”,这取决于您的需求。如果没有“大量”数据输入(尽管我看到100个主题有点过多),则一个线程可以为您处理所有流量,并会创建固定数量的TCP连接 >(全部由同一消费者产生,具体取决于经纪人的数量等)。

这并不意味着您正在为每个主题生成固定数量的TCP连接。该关系不是1 topic --> n Connections,而是1 consumer --> n Connections