在为我的项目选择其中一个之前,我正在学习和评估 spark 和 Flink。
在我的评估中,我提出了以下简单的任务,我可以弄清楚如何在这两个框架中实现它。
让我们这么说
1-/ 我有一个事件流,这些事件流只是关于某些项目在数据库中某处发生更改的事实的信息。
2-/我需要为每个事件查询数据库以获取项目的新版本
3-/应用一些转换
4-/连接到另一个数据库并写入结果。
我的问题如下:
使用 Flink 或 Sparks,如何确保对 dbs 的调用异步处理以避免线程饥饿?
我来自 scala/Akka,通常我们避免在这种情况下进行阻塞调用并使用 future 的所有方式。Akka 流允许流处理的细粒度级别的细节,例如Integrating stream with external service。这避免了线程饥饿。当我在我的 io 操作中等待时,线程可以用于其他事情。
简而言之,我看不到如何在两个框架中使用期货。
所以我相信这两种框架都可以以某种方式重现。
谁能解释一下这应该如何在 Flink 或 sparks 中处理。
如果不支持开箱即用,是否有人有以某种方式将其合并的经验。