Если вы снова запустите задание без определения точки сохранения ($ bin/flink run -s :savepointPath [:runArgs]
), flink попытается получить смещения вашей группы потребителей от kafka (в более старых версиях от zookeeper). Но вы потеряете все остальные состояния вашей работы по изменению статуса (которая может быть проигнорирована, если у вас есть работа по изменению состояния без проверки состояния).
Я должен признать, что это поведение довольно запутанно. По умолчанию запуск задания без точки сохранения подобен запуску с нуля. Насколько я знаю, только реализация исходного кода kafka отличается от этого поведения. Если вы хотите изменить это поведение, вы можете установить setStartFromGroupOffsets
из FlinkKafkaConsumer[08/09/10]
на false
. Это описано здесь: Конфигурация начальной позиции потребителей Kafka
Возможно, стоит более внимательно посмотреть документацию по flink: Что такое точка сохранения и чем она отличается от контрольных точек.
В двух словах
Контрольные точки:
Основной целью Контрольных точек является предоставление механизма восстановления в случае непредвиденных сбоев заданий. Жизненный цикл контрольной точки управляется Flink
Точки сохранения:
Точки сохранения создаются, принадлежат и удаляются пользователем. Их вариант использования предназначен для планового ручного резервного копирования и возобновления
В настоящее время ведутся дискуссии о том, как "объединить" точки сохранения и контрольные точки. Здесь можно найти много технических деталей: Улучшения Flink 47: Контрольные точки против точек сохранения