如何使用Akka流创建可调用源

时间:2019-01-08 23:10:03

标签: scala akka akka-stream

我们有以下架构

SQS(源)-> SQS轮询器->我们的业务逻辑->接收器,从SQS删除消息。

这是akka流(我们的业务逻辑有多个阶段)。

现在,我们想通过添加HTTP服务器(而不是Akka HTTP)来扩展此体系结构。

现在我们的服务也有一条路径

HTTP服务器->我们的业务逻辑->接收器,它将完成将来的操作,指示HTTP响应已完成。

现在,每当HTTP请求到来时,我都需要一种机制来调用流。

现在,SQS源实际上是一个长时间运行的线程,该线程调用服务并将消息推送到akka流的其余部分。

我实质上是在尝试创建一个“可调用的” akka源,以便仅当我们收到请求时才触发该源。

我在这里将https://doc.akka.io/docs/akka/2.5/stream/operators/Source/queue.html看作是一种潜在的解决方案,但是它仅在实现了整个可运行图之后才返回要调用的句柄,因此合并SQS轮询器源和HTTP有点难看可调用的来源。

1 个答案:

答案 0 :(得分:1)

我认为确实Source.queue可以成为这里的方法,一次实​​现流,并从HTTP服务器端点和SQS轮询器向队列提供元素。有什么特别的原因很难分享吗?