超时后检查点失败。我们观察到有一些子任务没有回应。任何想法都会导致这个问题?
工作背景:
并行性:5
数据量:低于40k
BackPressure:在作业结束时发送到另一个API,这可能需要一些时间。
Future<> future = Producer.send(topic, genericRecord, dataSetID);
future.get();
return Boolean.TRUE;
这里似乎可能是future.get()
阻塞,无论出于何种原因,都无法在检查点超时间隔内返回。
我可以建议你使用Flink的RichAsyncFunction代替。这将具有不会阻止子任务的优点,从而允许检查点完成。
RichAsyncFunction将检查未解决的未来,并在从失败中恢复时重新发出这些请求。