Я читаю документацию о функции однократного мигания здесь .И я не совсем понимаю некоторые из предложений:
После успешной предварительной фиксации, гарантия должна быть гарантированно в конечном итоге успешной - и нашим операторам, и нашей внешней системе нужносделать эту гарантию.Если фиксация завершается неудачно (например, из-за периодической проблемы с сетью), все приложение Flink завершается неудачно, перезапускается в соответствии со стратегией перезапуска пользователя, и происходит еще одна попытка фиксации.Этот процесс является критическим, потому что если фиксация в конечном итоге не удалась, происходит потеря данных.
Это говорит о том, что потеря данных происходит, если фиксация в конечном итоге не удалась.Я интерпретирую это как: фиксация может быть успешной, но она просто перестает работать при каждом перезапуске по определенной причине.В этом случае Flink может отказаться только от данных, принадлежащих этому коммиту.Таким образом, если потеря данных неприемлема, приложение должно быть перезапущено, пока фиксация не будет выполнена успешно?
Как известно, в случае сбоя Flink восстанавливает состояние приложения до последней успешной контрольной точки.Один потенциальный улов - это редкий случай, когда сбой происходит после успешной предварительной фиксации, но до того, как уведомление об этом факте (фиксация) достигает нашего оператора.В этом случае Flink возвращает нашему оператору состояние, которое уже было предварительно зафиксировано, но еще не зафиксировано.
Я тоже здесь не совсем следую.О чем это уведомление, которое не упомянуто выше?И означает ли указанный оператор оператор стока?Кроме того, насколько я понимаю, если фиксация прошла успешно, и только так называемое уведомление не сработало, не приведет ли это к дублированию данных после восстановления до предварительно зафиксированного состояния?
Пожалуйста, исправьте меня, если сам вопрос не являетсядействительный.Любая помощь приветствуется.