在开发 Apache flink 有状态函数时使用 python 或 java 有什么优缺点?
- 是否有任何性能差异?对于相同的操作,哪一个更有效?
- 我们可以完全在python上开发应用程序吗?
- 一个支持而另一个不支持的功能是什么。
StateFun支持嵌入式函数和远程函数。
-
嵌入式函数被捆绑并部署在运行 Flink 的 JVM 进程中。因此,它们必须用JVM语言(如Java(实现,并且它们将是性能最高的。缺点是,对函数代码的任何更改都需要重新启动 Flink 集群。
-
远程函数是在单独的进程中执行的函数,由 Flink 集群为发送给它们的每条传入消息调用。因此,它们的性能预计低于嵌入式功能,但它们在以下方面提供了极大的灵活性:
- 选择实现语言
- 快速扩展和缩减
- 发生故障时快速重启。
- 滚动升级
我们可以完全在python上开发应用程序吗?
是否可以完全在 Python 中开发应用程序,请参阅 python greeter 示例。
一个支持而另一个不支持的功能是什么。
当前功能仅在 Java SDK 中受支持:
- 从入口到函数的更丰富的路由逻辑。可以通过代码描述的任何路由逻辑。
- 还有几种状态类型,如表和缓冲区。
- 将现有的 Flink 源和接收器公开为入口和出口。