我正在学习和评估斯帕克斯和Flink之前,选择其中一个项目,我得到了。
在我的评估中,我提出了以下简单的任务,我可以找出如何在这两个框架中实现它。
这么说吧
1-/i有一个事件流,它只是关于某个项目在数据库中的某个位置发生了更改这一事实的信息。
2-/i需要为每个事件查询db以获取项目的新版本
3-/应用一些变换
4-/连接到另一个数据库并写入结果。
我的问题如下:
使用flink或sparks,如何确保对dbs的调用是异步处理的,以避免线程耗尽?
我来自scala/akka,在那里我们通常避免打阻塞电话,并使用future来处理这种情况。akka流允许流处理的细粒度细节级别,例如将流与外部服务集成。这样可以避免线程不足。当我在io操作中等待时,线程可以用于其他用途。
简而言之,我不知道如何在这两个框架中使用futures。
所以我相信这两个框架都可以复制。
有人能解释一下在flink或sparks中应该如何处理这个问题吗。
如果这不是开箱即用的支持,那么是否有人有将其合并的经验。
1条答案
按热度按时间ws51t4hk1#
从flink的1.2.0版开始,现在可以使用异步i/OAPI来实现这一点。