Flink, основное правило для контрольных точек? - PullRequest
0 голосов
/ 07 марта 2019

У меня есть 2 вопроса относительно стратегии создания контрольных точек Flink,

  1. Я знаю, что контрольная точка связана с состоянием (верно?), Поэтому, если я не использую явно состояние (ValueState) вмой код работы, мне нужно заботиться о контрольно-пропускном пункте?Это все еще необходимо?
  2. Если мне нужно включить контрольную точку, каким должен быть интервал?Существуют ли основные правила для установки интервала?Предположим, мы говорим о довольно загруженной системе (Кафка + Флинк), например, о нескольких миллиардах сообщений в день.

Большое спасибо.

1 Ответ

1 голос
/ 07 марта 2019

Даже если вы не используете явно состояние в вашем приложении, соединители источника и приемника Flink Kafka используют состояние от вашего имени, чтобы предоставить вам гарантии, по крайней мере, один раз или точно один раз, при условии, что вы заботитесь о эти гарантии. Кроме того, некоторые другие операторы также будут использовать состояние несколько прозрачно от вашего имени, например окна и другие потоковые агрегаты.

Если ваше задание Flink не выполнено, оно будет перемотано обратно к последней успешной контрольной точке и возобновит обработку с этого момента. Так, например, если интервал между контрольными точками составляет 10 минут, то после восстановления у вашей работы может быть более 10 минут данных, чтобы наверстать упущенное, прежде чем она сможет возобновить обработку живых данных. Поэтому выберите интервал контрольных точек, с которым вы можете жить с этой точки зрения.

...