我分别运行两个kafka流应用程序,每个应用程序在不同的JVM实例中运行正常。一旦我在同一个JVM实例中运行应用程序,第二个应用程序就无法运行(既不消耗也不生成数据)。在同一个JVM实例中运行两个独立的应用程序有任何限制吗?这对卡夫卡消费者来说也会发生吗?
答案 0 :(得分:0)
它应该可以将多个KafkaStreams
实例放入同一个JVM中。但是在一个实例中增加线程数可能更容易。
注意:您可以使用的所有实例上的线程数受限于您输入主题的输入分区数(这不是很精确,但是一个很好的经验法则)。您的输入主题中是否有足够的分区?您是否看到某些分区未分配给未处理的实例?
另请注意,Kafka Stream并行化每个线程 - 这意味着,如果您有2个实例,每个实例有2个线程,并且只有2个输入主题分区,则可能会发生两个分区都分配给一个实例的两个线程而另一个实例的两个线程是空闲的。在运行期间,我们只会看到"线程并且不知道它们是否在相同或不同的KafkaStreams
个实例中运行。