如果有一个包含10个分区的kafka主题,我们希望使用flink来使用该主题。我们希望系统根据工作负荷动态分配插槽,这意味着如果工作负荷较低,则flink作业可以使用较少的插槽(并行度较小),而如果工作负荷较高,则可以较高的并行度运行。是否有实现此目标的好方法?似乎可以通过先停止作业来更改并行性。如果是,暂停时间是否会影响应用程序的实时功能?还有其他想法可以改变并行度吗?非常感谢。
答案 0 :(得分:2)
有一个REST api call和一个CLI command用于修改正在运行的作业的并行性,但是当前重新分配状态的唯一方法是创建一个保存点并从该保存点重新启动,这就是重新缩放的方式有效(目前)。
如果您的应用程序正在使用事件时间处理,则结果应不受重启的影响,但当然会因停机而延迟。
答案 1 :(得分:1)
是否有一种实现动态缩放的好方法?
据我所知,目前的答案是“否”。但是,我们可以说FLIP-6 Flink Development and Process Model已经考虑了这一点。
暂停时间是否会影响应用程序的实时功能?
是的。时间成本将用于取消,重新启动,重新分配资源和状态等。