Сколько экземпляров Flink Functions создано? - PullRequest
0 голосов
/ 16 января 2020

Предполагая следующий конвейер:

input.filter(new RichFilterFunction<MyPojo>() {
        @Override
        public boolean filter(MyPojo value) throws Exception {
            return false;
        }
     });

Сколько экземпляров вышеупомянутой расширенной функции будет создано?

  • За задачу без исключений
  • За задача, однако все параллельные задачи на определенном узле совместно используют один экземпляр, так как они являются частью одного экземпляра JVM

1 Ответ

1 голос
/ 16 января 2020

Всегда будет столько случаев, сколько указывает параллелизм. Для этого есть две причины:

  1. Если ваша функция поддерживает состояние, особенно в контексте ключа, общий экземпляр может вызвать непреднамеренные побочные эффекты.
  2. В начале дни пользователям нравилось поддерживать свое собственное состояние (например, вспоминая предыдущее значение). Несмотря на то, что это сильно обескураживает, все равно будет плохо, если Флинк не сможет это поддержать.
...