如何发布或订阅物化的 Akka Stream 流程图?

How can I publish or subscribe to a materialized Akka Stream flow graph?

我正在研究 Akka Stream,并试图弄清楚它在物化后的灵活性。

一种方法是使用低级反应流API: http://doc.akka.io/api/akka-stream-and-http-experimental/1.0-M3/#akka.stream.scaladsl.PublisherSource

但是,您需要定义这些要发布或订阅的点。有没有办法发布或订阅任意物化流图节点?这应该是可能的,因为物化流图只不过是参与者的集合。

例如: 首先部署流程图1:A ~> B ~> C

然后,部署流程图2和3:D ~> B B ~> E

不可能完全动态地改变流处理管道的结构。我们确实预见到某些类型的动态处理阶段(如 "fanout to workers which may come and go"),但一般来说,流和流处理管道在实现之前应该有一个定义的布局。这也是有道理的,因为 akka-streams 和 reactive-streams 通常采用的背压机制——它必须在内部仔细管理,并且允许任意交互并不是这个 streaming 模型专为。

如果你想要任意交互,Actor 应该更适合你。如果您想要一个可以接收外部信号来引导处理管道的处理元素,那么它应该是物化管道内的一个特殊元素,旨在接收这些信号,而不仅仅是任何元素。


自从我发布此 post 后,我们添加了一些动态功能,登陆此站点的人可能会感兴趣,最值得注意的是 MergeHub and the BroadcastHub

请注意,Akka Streams 的稳定版本是 2.4.16