假设我有状态 Kafka Streams 应用程序使用 3 个分区的主题数据。目前,我有 2 个上述应用程序实例正在运行。让我们这样说:instance1
有分区part1
并part2
分配,instance2
有part3
.
所以现在我想添加新实例以完全利用并行化。
据我了解,一旦我启动一个新实例,就会发生重新平衡:分区之一part1
或part2
相应的本地状态存储将从现有实例迁移到新添加的实例。在这个例子中,让我们假设part1
迁移到instance3
.
同时,我意识到新实例instance3
在从 changelog 主题恢复本地状态存储之前不会开始处理新数据,这可能需要很长时间。
从启动应用程序到恢复状态存储期间:
- 这是否意味着在完成启动
part1
之前没有处理并卡住来自的数据?instance3
instance3
如果是,那么有什么方法可以估计建立当地的州立商店需要多少时间?- 在此期间,其他实例是否不受重新平衡的影响并继续处理数据而没有停机时间 (
instance1 - part2
,instance2 - part3
)?