Apache Flink中的状态函数远程模块



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

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作为embedded_module受到支持。

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的远程函数示例吗?

此外,我可以混合使用嵌入式和共处一地/远程功能吗?例如,如果我将客户统计信息(sum、count、avg等(出口到另一个kafka主题,然后进入该主题,我就可以使用python sdk的远程函数。远程功能包括可更新的场景,但嵌入式功能是客户的核心统计数据,不需要更新这些功能。

是否存在远程Java SDK

目前还没有Java远程SDK,但根据Apache Flink开发邮件列表上的讨论,我预计很快就会看到一个。

像python这样的远程SDK实际上是通用Http接口的方便包装器。我的意思是,statefun运行时中没有python特定的逻辑,因此您现在可以用任何语言实现远程函数。显然,flink社区不想强迫人们这样做,因此正在为未来的版本开发新的远程sdk。

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

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

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

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

相关内容

  • 没有找到相关文章