非阻塞操作在Flink或Sparks vs Akka流中

时间:2016-05-25 10:02:47

标签: apache-spark apache-flink akka-stream akka-http flink-streaming

我正在学习和评估sparks和Flink,然后选择其中一个来完成我的项目。

在我的评估中,我想出了以下简单的任务,我可以弄清楚如何在两个框架中实现它。

我们说

1- /我有一个事件流,它们只是关于某个项目在数据库中某处发生变化这一事实的信息。

2- /我需要每个事件,查询数据库以获取项目的新版本

3- /应用一些转换

4- /连接到另一个Db并写出结果。

我的问题如下:

使用Flink或Sparks,如何确保对dbs的调用是异步处理以避免线程饥饿?

我来自scala / Akka,我们通常会避免进行阻止调用,并在此类情况下使用未来的所有方法。 Akka流允许流处理的细粒度细节,例如Integrating stream with external service。这可以避免线程饥饿。当我在我的io操作中等待时,该线程可以用于其他东西。

简而言之,我不知道如何在两个框架中使用期货。

所以我相信这可以用两个框架重现。

任何人都可以解释一下这应该如何在Flink或火花中处理。

如果不支持开箱即用,那么是否有人有过以某种方式将其合并的经验。

1 个答案:

答案 0 :(得分:0)

从Flink版本1.2.0开始,您现在可以使用Async I/O API来实现此目的。