Apache Flink 状态函数 python vs java 性能

Ari*_*rci 2 apache-flink flink-statefun

开发apache flink有状态函数时使用python或java有什么优缺点。

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

小智 5

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

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

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

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

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

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

一个支持哪些功能,另一个不支持哪些功能。

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

  • 从入口到函数的更丰富的路由逻辑。您可以通过代码描述的任何路由逻辑。
  • 更多的状态类型,如表和缓冲区。
  • 将现有的 Flink 源和接收器暴露为入口和出口。