Удаленный модуль с отслеживанием функций в Apache Flink - PullRequest
0 голосов
/ 29 апреля 2020

Когда я изучал функциональные модули состояния, я обнаружил ниже результаты.

https://ci.apache.org/projects/flink/flink-statefun-docs-release-2.0/sdk/python.html -> Python SDK поддерживается как удаленный модуль.

https://ci.apache.org/projects/flink/flink-statefun-docs-release-2.0/sdk/java.html -> SDK Java поддерживается как встроенный модуль.

https://ci.apache.org/projects/flink/flink-statefun-docs-release-2.0/sdk/modules.html -> Этот тип модуля может поддерживать любое количество языковых SDK. Удаленные модули регистрируются в системе через файлы конфигурации YAML.

Приложения с функцией Stateful связываются с Apache Flink runtime, используя http. Python SDK поставляется с RequestReplyHandler, который автоматически отправляет вызовы функций на основе RESTful HTTP POSTS. RequestReplyHandler может быть открыт с использованием любой HTTP-инфраструктуры.

Как я могу обслуживать запросы в JAVA? Есть ли примеры удаленных функций для Java SDK?

Также можно ли смешивать встроенные и совмещенные / удаленные функции? Например, если я выхожу, например, статистика клиента (sum, count, avg et c.) В другой kafka topi c, а затем я вхожу в этот topi c, и я могу использовать удаленные функции с python sdk , Удаленные функции включают в себя обновляемый сценарий, но встроенные функции являются основной статистикой клиента и не требуют обновления этих функций.

1 Ответ

1 голос
/ 30 апреля 2020

Есть ли удаленный Java SDK

Сегодня нет Java удаленного SDK, но я ожидаю увидеть его в ближайшее время, основываясь на обсуждениях по Apache Flink dev список рассылки.

Удаленные SDK, такие как python, по сути являются удобными обертками для универсального интерфейса c Http. Под этим я подразумеваю, что во время выполнения statefun нет python speci c logi c, поэтому сегодня может реализовать удаленную функцию на любом языке. Очевидно, что сообщество Flink не хочет навязывать это людям, поэтому разрабатываются новые удаленные SDK для будущих выпусков.

Также можно ли смешивать встроенные и совмещенные / удаленные функции?

Да, специальных магий c нет. Просто включите оба модуля в одном развертывании и вы получите go. Функции в любом модуле могут сообщать друг другу произвольно.

Вы можете сослаться на этот пример обслуживания модели, который содержит как встроенные функции java, так и удаленные функции python.

https://github.com/ververica/flink-statefun-workshop

...