【问题标题】:Stateful Functions Remote Module in Apache FlinkApache Flink 中的有状态函数远程模块
【发布时间】:2020-04-29 18:18:31
【问题描述】:

当我检查状态函数模块时,我发现以下结果。

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 -> 支持 Java SDK 作为嵌入式模块。

https://ci.apache.org/projects/flink/flink-statefun-docs-release-2.0/sdk/modules.html -> 该模块类型可以支持任意数量的语言 SDK。远程模块通过 YAML 配置文件注册到系统中。

Stateful Function 应用程序使用 http 与 Apache Flink 运行时通信。 Python SDK 附带一个 RequestReplyHandler,它会根据 RESTful HTTP POSTS 自动分派函数调用。 RequestReplyHandler 可以使用任何 HTTP 框架公开。

如何在 JAVA 中处理请求?是否有 Java SDK 的远程函数示例?

我还可以混合使用嵌入式和协同定位/远程功能吗? 例如,如果我将客户的统计信息(总和、计数、平均等)输出到另一个 kafka 主题,然后我进入该主题,我可以使用 python sdk 的远程函数。远程功能包括可更新的场景,但嵌入式功能是客户的核心统计数据,无需更新这些功能。

【问题讨论】:

    标签: java state apache-flink flink-statefun


    【解决方案1】:

    是否有远程 Java SDK

    目前没有 Java 远程 SDK,但根据 Apache Flink 开发邮件列表上的讨论,我希望很快能看到。

    远程 SDK(如 python)是通用 Http 接口的有效包装器。我的意思是 statefun 运行时中没有特定于 python 的逻辑,因此您现在可以用任何语言实现远程函数。显然,flink 社区不想将其强加于人们,因此正在为未来的版本开发新的远程 sdk。

    我还可以混合使用嵌入式和同地/远程功能吗?

    是的,没有什么特别的魔法。只需将两个模块都包含在一个部署中即可。任一模块中的函数都可以任意相互发送消息。

    您可以参考这个模型服务示例,其中包含嵌入式 java 函数和远程 python 函数。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-07-27
      • 2020-08-29
      • 1970-01-01
      • 2020-08-14
      • 2018-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多