在我的应用程序中,我将使用来自100多个主题的数据。我应该为每个主题创建一个消费者还是从所有主题中创建一个消费者消费者?创建100个消费者是否会创建100个到kafka的TCP连接,或者只打开几个连接并重新使用它们?
谢谢!
我应该为每个主题创建一个消费者还是从所有主题中创建一个消费者消费者
首先,是的,一个消费者可以从多个主题中检索数据。
subscribe()
方法(其中之一)要求将List of Topics
作为参数。assign()
方法,也要求List of TopicPartitions
,它可以来自同一主题,也可以来自多个主题。关于你的“我应该”,这取决于你的需求。如果没有“大量”数据进入(虽然我看到100个主题有点过多),一个单独的线程可以为您处理所有流量,创建固定数量的TCP连接(全部由相同的生成消费者,取决于经纪人的数量等)。
这并不意味着它为每个主题生成固定数量的TCP连接,您。关系不是1 topic --> n Connections
,而是1 consumer --> n Connections
。