当 flink 接收器失败时,接收器中的缓冲区会丢失吗?



我正在使用 flink 来处理大量数据并添加到 HBase.To 以提高接收器到 hbase 的速度,我在 flink 接收器操作上缓冲了一些数据。当达到批量阈值时,数据将发送到HBase。

但是,如果接收器在达到批处理阈值之前失败, 缓冲区上的数据会丢失吗?如果我一个接一个地将数据发送到HBase,速度似乎太慢了。

有没有人对如何最好地解决这个问题有任何指示?

当接收器任务失败时,缓冲区中的数据将丢失。

如果不使用检查点,则无法保存这种情况。

通过使用检查点,您可以从检查点重新启动程序,数据将再次发送到 HBase,语义至少一次。要实现恰好一次的语义,您可以尝试实现 CheckpointListener 并在检查点完成时提交缓冲区。

相关内容

  • 没有找到相关文章

最新更新