Kafka Streams - Tasks/Partitions/Processor 关系
Kafka Streams - Tasks/Partitions/Processor relationship
我正在使用低级 API 处理器。我有一个包含 6 个分区的主题。在实现 Processor<K,V>
的 class 中,我定义了一些 class 变量(非静态)。我知道会有6个任务。当我们启动流应用程序时,我看到有 6 个实例化了实现 Processor<K,V>
的 class。我们可以将这些对象实例与任务相关联吗?在重新平衡期间,我假设分区可以在单独的线程或另一个实例上从一个任务切换到另一个任务。如果是这样,是否会为在不同线程或实例上重新分配的分区实现 Processor<K,V>
的 class 实例化一个新对象,并在对应的现有对象上调用 close 方法那个分区?
如果任务从一个线程移动到另一个线程,任务将被关闭并创建一个包含新处理器对象的新任务。
因此,所有局部成员变量在设计上都是短暂的。
如果您需要在重新平衡之间保留任何状态,则需要将商店附加到 Processor
。
我正在使用低级 API 处理器。我有一个包含 6 个分区的主题。在实现 Processor<K,V>
的 class 中,我定义了一些 class 变量(非静态)。我知道会有6个任务。当我们启动流应用程序时,我看到有 6 个实例化了实现 Processor<K,V>
的 class。我们可以将这些对象实例与任务相关联吗?在重新平衡期间,我假设分区可以在单独的线程或另一个实例上从一个任务切换到另一个任务。如果是这样,是否会为在不同线程或实例上重新分配的分区实现 Processor<K,V>
的 class 实例化一个新对象,并在对应的现有对象上调用 close 方法那个分区?
如果任务从一个线程移动到另一个线程,任务将被关闭并创建一个包含新处理器对象的新任务。
因此,所有局部成员变量在设计上都是短暂的。
如果您需要在重新平衡之间保留任何状态,则需要将商店附加到 Processor
。