Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache kafka Kafka在重新分区时流式处理线程数_Apache Kafka_Apache Kafka Streams - Fatal编程技术网

Apache kafka Kafka在重新分区时流式处理线程数

Apache kafka Kafka在重新分区时流式处理线程数,apache-kafka,apache-kafka-streams,Apache Kafka,Apache Kafka Streams,我有一个Kafka Streams应用程序,从一个Kafka主题中读取5个分区 然后对数据进行多次聚合/重新分区 我试图找到这个场景中线程数量的建议,但发现很难理解。报告内容如下: 只要有输入,就可以启动应用程序的任意多个线程 卡夫卡主题分区 这意味着在我的例子中,5个线程是有效线程的最大数量 但是,声称重新分区会使最大有效线程数加倍: 。。。此主题是使用相同的主题自动创建的 作为源主题的分区数,这意味着我们的应用程序 现在从16个分区读取8个线程,从而创建某种 争论的焦点 这对我来说也是合理的

我有一个Kafka Streams应用程序,从一个Kafka主题中读取5个分区

然后对数据进行多次聚合/重新分区

我试图找到这个场景中线程数量的建议,但发现很难理解。报告内容如下:


只要有输入,就可以启动应用程序的任意多个线程 卡夫卡主题分区

这意味着在我的例子中,5个线程是有效线程的最大数量

但是,声称重新分区会使最大有效线程数加倍:

。。。此主题是使用相同的主题自动创建的 作为源主题的分区数,这意味着我们的应用程序 现在从16个分区读取8个线程,从而创建某种 争论的焦点

这对我来说也是合理的,因为卡夫卡流也必须从它创建的内部主题中阅读


那么,有效线程的最大数量是5个分区还是5*(重新分区)?

您可以启动任意数量的线程。但是,只有一定数量的线程将被利用,而所有其他线程将处于空闲状态

最大使用线程数是创建的任务数

拓扑分为子拓扑,每个子拓扑的输入主题分区数决定了每个子拓扑创建的任务数。如果您配置了备用任务,那么您也可以获得可以利用线程的其他任务

一般来说,很难预先知道创建了多少任务卡夫卡流。您可以通过
拓扑#descripe()
获取子拓扑。如果所有主题都有相同数量的分区,那么任务的数量将是
\numPartition*\numsubtologies


文档是特意简化的,因为任务的确切数量很难提前确定,因为存在许多依赖项。此外,通常每个任务不需要一个线程,经验法则足以让您开始。

谢谢您的回答。在文件系统中,我在/tmp/kafka streams/MY_APP/中有很多dir,比如0_0。。9_4. 这些目录的计数是任务的数量(因此是使用的线程的最大数量)?是。这些是任务目录。太好了。谢谢