Kafka Streams - 任务/分区/处理器关系

时间:2018-06-13 14:24:55

标签: apache-kafka apache-kafka-streams

我使用的是低级API处理器。我有一个有6个分区的主题。在实现Processor<K,V>的类中,我定义了一些类变量(非静态)。我知道会有6个任务。当我们启动流应用程序时,我看到有6个对象被实例化实现Processor<K,V>的类。我们可以将这些对象实例与任务联系起来在重新平衡期间,我假设分区可以在单独的线程或另一个实例上从一个任务切换到另一个任务。如果是这样,是否会为在不同线程或实例上重新分配的分区实现Processor<K,V>的类实例化一个新对象,并在与该分区对应的现有对象上调用close方法? / p>

1 个答案:

答案 0 :(得分:1)

如果某个任务从一个线程移动到另一个线程,则该任务将被关闭,并且将创建一个包含新Processor对象的新任务。

因此,所有本地成员变量都是短暂的设计。

如果您需要在重新平衡之间保留任何状态,则需要将商店附加到conn.Open()