2

开发apache flink stateful function时使用python或者java有什么优缺点。

  • 有性能差异吗?对于相同的操作,哪一个更有效?
  • 我们可以完全在 python 上开发应用程序吗?
  • 一个支持而另一个不支持的功能是什么。
4

1 回答 1

5

StateFun支持嵌入式功能和远程功能。

  • 嵌入式功能捆绑并部署在运行 Flink 的 JVM 进程中。因此,它们必须以 JVM 语言(如 Java)实现,并且它们将是性能最高的。缺点是对功能代码的任何更改都需要重启 Flink 集群。

  • 远程函数是在单独进程中执行的函数,由 Flink 集群针对发给它们的每个传入消息调用。因此,它们的性能预计低于嵌入式功能,但它们在以下方面提供了极大的灵活性:

    • 选择实现语言
    • 快速放大和缩小
    • 发生故障时快速重启。
    • 滚动升级

我们可以完全在 python 上开发应用程序吗?

是否可以完全用 Python 开发应用程序,请参阅 python greeter 示例

一个支持而另一个不支持的功能是什么。

当前功能仅在Java SDK中受支持:

  • 从入口到函数的更丰富的路由逻辑。您可以通过代码描述的任何路由逻辑。
  • 很少有像表和缓冲区这样的状态类型。
  • 将现有的 Flink 源和接收器公开为入口和出口。
于 2020-05-13T15:09:10.677 回答