【问题标题】:Flink: What does it mean to embed flink on other programs?Flink:在其他程序中嵌入 flink 是什么意思?
【发布时间】:2020-03-20 15:41:21
【问题描述】:

在其他程序中嵌入 flink 是什么意思?
在这里的链接 - https://ci.apache.org/projects/flink/flink-docs-release-1.10/dev/api_concepts.html#basic-api-concepts 在第二段中它说 flink 可以嵌入到其他程序中。

我想了解更多。比如如何实现。一个示例程序将非常有帮助。 使用上述是否可以实现以下?

  1. 我们可以将 flink 程序作为单独的 Actor 运行吗?
  2. 我们可以在两个 flink 程序之间路由数据吗?

原因:我问上面两个问题是因为我的要求如下
我有一些基于配置文件的 Flink 作业/程序我只希望某些 Flink 作业/程序来处理输入数据,并且这会根据配置文件不断变化。因此,需要 Flink 作业。/程序(或这些作业中的代码)始终可用,并且它们需要传递数据和通信。

请分享您的见解。

【问题讨论】:

    标签: apache-flink flink-streaming


    【解决方案1】:

    在其他程序中运行 Flink 参考 Flink 的local execution mode。本地执行模式在你的 JVM 中运行一个 Flink 程序。这意味着作业不会被分布式执行。

    目前无法开箱即用的是让 Flink 作业控制其他 Flink 作业。但是,可以构建一个 Flink 应用程序,将作业描述作为输入并执行它们。 RBEA 就是这样一个 Flink 应用程序的一个例子。概念上的区别在于您没有多个 Flink 作业,而是一个将程序作为输入记录处理的单个作业。

    或者,您可以查看Stateful functions,它是一个基于 Apache Flink 构建的虚拟参与者框架。这个想法是为构建具有强一致性保证的分布式有状态应用程序提供一个框架。使用有状态函数,您还可以构建一个 Flink 应用程序来处理可以表示一种计算形式的事件。

    【讨论】:

    • 您好,感谢您的信息。我正在经历有状态的功能。我想知道我们是否可以使用嵌入在有状态函数中的 Datastream API?因为我想利用window func等。
    • 我已阅读有状态函数,但我没有了解数据/消息在 RBEA 中的路由方式。你能解释一下吗
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-23
    • 1970-01-01
    • 2011-10-11
    • 2023-03-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多