Flink Statefun在背压下应用程序崩溃

polhcujo  于 2022-12-16  发布在  Apache
关注(0)|答案(1)|浏览(133)

我正在阅读一个Kafka主题的数据,这个主题有很多数据,一旦flink开始读取,它就会启动良好,然后在一段时间后崩溃,当背压达到100%时,然后进入一个无休止的重启循环。
我的问题是flink的反压力机制是否应该发挥作用,减少从主题到飞行数据被消耗或反压力减少的消耗,如本文所述:https://www.ververica.com/blog/how-flink-handles-backpressure?或者我需要给予一些我遗漏的配置吗?当背压增加时,有没有其他的解决方案来避免这种重新启动循环?
我试过配置

taskmanager.network.memory.buffer-debloat.enabled: true
taskmanager.network.memory.buffer-debloat.samples: 5

mymodules.yaml有这个配置用于传输

spec:
  functions: function_name
  urlPathTemplate: http://nginx:8888/function_name
  maxNumBatchRequests: 50
  transport:
    timeouts:
      call: 2 min
      connect: 2 min
      read: 2 min
      write: 2 min
ulmd4ohb

ulmd4ohb1#

您应该查看日志以确定导致崩溃和重启的确切原因,但通常情况下,当背压涉及到重启时,这是因为检查点超时。
不过,如果你能减少/消除反压力,效果会更好。反压力的一个常见原因是没有为Flink提供足够的资源来跟上负载。如果这种情况经常发生,你应该考虑扩大并行度。或者可能是出口资源不足。
我知道你已经尝试过缓冲区释放(这应该会有帮助)。你也可以尝试启用未对齐的检查点。
有关详细信息,请参见https://nightlies.apache.org/flink/flink-docs-release-1.15/docs/ops/state/checkpointing_under_backpressure/

相关问题