Не все операторы добавляются в среду выполнения Esper версии 8.5.

Наше текущее приложение работает на Esper V5.2, но при обновлении до V8.5 возникает следующая проблема:

Всего у нас 6 узлов (ВМ). При запуске серверов несколько операторов вообще не загружаются ни на одной из виртуальных машин, и несколько операторов загружаются на 2-3 виртуальных машинах из всех 6 узлов. И это все случайно.

Кроме того, у нас есть возможность редактировать операторы во время выполнения. После редактирования мы сначала удаляем операторы из среды выполнения и снова добавляем новый. Приведенные выше операторы, которые не загружались при запуске, на этот раз добавляются (в случае функций редактирования).

Все работает нормально в более старой версии, т.е. V5.2


person PolygotP    schedule 22.06.2020    source источник


Ответы (1)


Вероятно, в коде вашего приложения есть ошибка, связанная с отслеживанием развертываний. Между версиями 5.2 и 8.5 произошли изменения в архитектуре Esper, в результате чего Esper стал компилятором EPL, выдающим байт-код JVM, и загрузкой только байт-кода во время выполнения EPL. Код вашего приложения, который управляет этапами компиляции-развертывания и решает, что и где развертывать, необходимо проверить, поскольку это делается вне ядра Esper и выполняется вашим приложением.

person user650839    schedule 22.06.2020
comment
Если идентификатор развертывания уникален для каждого оператора, а имя оператора одинаково для всех операторов, это нормально? или имя оператора также должно быть уникальным? - person PolygotP; 22.06.2020
comment
Мы использовали метод compileDeploy из espertech.com/2018/10/23/ и добавлен ниже Deploymentoption - options.setDeploymentId(deploymentId + subscribe.getId().toString()); options.setStatementNameRuntime (новый StatementNameRuntimeOption() {общедоступная строка getStatementName (StatementNameRuntimeContext env) {return DEFAULT_STATEMENT_NAME;}}); - person PolygotP; 22.06.2020