Потоковая обработка: как часто следует запускать контрольную точку? - PullRequest
1 голос
/ 19 сентября 2019

Я настраиваю аналитический конвейер, используя Apache Flink для обработки потока данных IoT.При попытке настроить систему я не могу найти какие-либо источники того, как часто следует запускать контрольные точки?Есть ли какие-либо рекомендации или жесткие правила?например, 1 секунда, 10 секунд, 1 минута и т. д.

Ответы [ 2 ]

1 голос
/ 20 сентября 2019

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

1 голос
/ 19 сентября 2019

Это зависит от двух вещей:

  • Сколько данных вы готовы повторно обработать в случае сбоя (задание будет перезапущено с последней выполненной контрольной точки)?
  • Какчасто вы можете проходить контрольную точку из-за ограничений на передачу данных и продолжительности самой контрольной точки?

По моему опыту, большинство пользователей используют интервалы контрольных точек порядка 10 секунд, но также настраивают «минимальные паузы между контрольными точками» [1].

[1]https://ci.apache.org/projects/flink/flink-docs-release-1.9/dev/stream/state/checkpointing.html#enabling-and-configuring-checkpointing

...