Apache Flink有状态函数python vs Java性能

时间:2020-05-13 07:59:38

标签: apache-flink flink-statefun

开发apache flink有状态功能时使用python或java的优点和缺点。

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

1 个答案:

答案 0 :(得分:4)

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

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

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

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

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

是否可以完全使用Python开发应用程序,请参见python greeter example

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

Java SDK当前仅支持当前功能:

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