我从https://doc.akka.io/docs/akka/current/index.html
我有一个带有子演员的ActorSystem,并且在所有层次中创建了带有父演员的所有子演员。DeviceManager是我的父演员,设备是子演员。
我想了解akka流在actor生命周期中从哪里开始,当我们创建父actor时,流过程将开始吗?
Akka流如何与Actor生命周期相关联?
Akka流如何与Actor生命周期相关联?
Akka Streams和Typed Actor API本质上是两个可以互操作并共享一些实现细节的API。使用Actor API创建的任何actor的生命周期完全独立于您正在运行的任何流。 (反之亦然。)
我想了解流在生命周期中从哪里开始,当我们创建父actor时,流过程将在何时开始?
如上所述,流是独立的。当您RunnableGraph
时,流(以run
表示)将“启动”。 (并不是说有几种方便的方法可以完成相同的操作,例如Source.runWith
,Source.runForeach
等。任何带有“运行”的流方法都可能“启动”一个流。)这种“启动”称为物化,其中生成了只是流的蓝图的图(由源,流和汇组成)。
streams quickstart是开始学习的好地方。
我有带有子actor的ActorSystem,并且在层次结构中创建了带有父actor的所有子actor。 DeviceManager是我的父演员,设备是子演员。
[如果要使两者互操作,请查看Akka Streams文档的Actor Interop部分。但例如,如果您有要在Akka流中处理的IoT数据流,并且要在流的末尾将该流的元素发送到DeviceManager actor,则可以使用[ C0]。您只需在流的末尾使用该接收器,然后您的actor将收到正常的actor消息。 (如果不需要背压,则可以只使用ActorSink.actorRefWithBackpressure
,但是如果使用的是Streams,则应使用背压。)