Flink позаботится об этом автоматически, если включена контрольная точка.Базовый механизм описан здесь , но в двух словах, Flink периодически снимает все состояние кластера и восстанавливает его в случае сбоя.Это включает в себя перематывание источников и повторное воспроизведение событий по мере необходимости для достижения семантики обработки ровно один раз.
Обновление:
Иногда необходимо циклически возвращать события назад по некоторым или всем графикам заданий.DataSet API от Flink поддерживает это с итерациями , но, к сожалению, существуют проблемы с итерациями и потоковой передачей.Лучшее доступное решение - записывать события в приемник и повторно получать их из источника.