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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.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 Streams如何执行连接?_Apache Kafka_Apache Kafka Streams - Fatal编程技术网

Apache kafka 当要连接的数据可以在不同的机器上分配时,Kafka Streams如何执行连接?

Apache kafka 当要连接的数据可以在不同的机器上分配时,Kafka Streams如何执行连接?,apache-kafka,apache-kafka-streams,Apache Kafka,Apache Kafka Streams,有两个卡夫卡主题,每个主题有两个分区。它们的消息由相同的参数id设置键:Integer 我有两个Kafka Streams应用程序的实例,因此每个实例将被分配两个分区(任务),每个主题一个 现在,假设来自主题A的消息ID=1的分区被分配给KStreams应用实例A,来自主题B的消息ID=1的分区被分配给应用实例B,如果来自主题的数据可能没有被并置,那么这两个KStreams的连接怎么能工作呢(在本例中,keys/id=1会发生这种情况)有很多方法可以做到这一点。。。如果存储不是问题,或者消息频率

有两个卡夫卡主题,每个主题有两个分区。它们的消息由相同的参数id设置键:Integer

我有两个Kafka Streams应用程序的实例,因此每个实例将被分配两个分区(任务),每个主题一个


现在,假设来自主题A的消息ID=1的分区被分配给KStreams应用实例A,来自主题B的消息ID=1的分区被分配给应用实例B,如果来自主题的数据可能没有被并置,那么这两个KStreams的连接怎么能工作呢(在本例中,keys/id=1会发生这种情况)有很多方法可以做到这一点。。。如果存储不是问题,或者消息频率较低,则可以将GlobalKtables用于其中一个主题。这将花费更多内存,因为所有分区都将在Streams应用程序的所有实例上同步

另一种方法是使用Kafka streams交互查询来发现其他流实例上的数据

对于KStreams连接,您需要为这两个主题拥有相同数量的分区,以及相同的分区策略。这样,所有使用者都将以相同的方式读取这两个主题的分区


很好的分区参考博客-

有很多方法可以做到这一点。。。如果存储不是问题,或者消息频率较低,则可以将GlobalKtables用于其中一个主题。这将花费更多内存,因为所有分区都将在Streams应用程序的所有实例上同步

另一种方法是使用Kafka streams交互查询来发现其他流实例上的数据

对于KStreams连接,您需要为这两个主题拥有相同数量的分区,以及相同的分区策略。这样,所有使用者都将以相同的方式读取这两个主题的分区


很好的分区参考博客-

那么将一个KStream与另一个KStream连接起来怎么样?如果没有任何方法可以确保来自不同主题的相同键在同一任务@codependent上的搭配,那么这似乎是毫无意义的-您应该为两个主题使用相同数量的分区以及相同的分区策略。。这将确保所有使用者在读取时获得相同的分区。。很好的分区博客-你好,Aman,这篇评论回答了我的问题,谢谢。如果您用此信息更新您的答案,我将接受它为有效。@codependent-很高兴它回答了您的问题。。。我已使用这些详细信息更新了答案。那么,将一个KStream与另一个KStream合并如何?如果没有任何方法可以确保来自不同主题的相同键在同一任务@codependent上的搭配,那么这似乎是毫无意义的-您应该为两个主题使用相同数量的分区以及相同的分区策略。。这将确保所有使用者在读取时获得相同的分区。。很好的分区博客-你好,Aman,这篇评论回答了我的问题,谢谢。如果您用此信息更新您的答案,我将接受它为有效。@codependent-很高兴它回答了您的问题。。。我已经用这些细节更新了答案比较:--它对聚合和联接的工作方式相同。数据将被重新分区。现在更清楚了,我欣赏MatthiasCompare的链接:--它对聚合和连接的工作方式相同。数据将被重新分区。现在更清楚了,我感谢Matthias的链接