繁体   English   中英

Java Akka 演员和流

[英]Java Akka Actor and Streams

我从https://doc.akka.io/docs/akka/current/index.html 开始学习 akka

我有带有子演员的 ActorSystem 以及在父演员的层次结构中创建的所有子演员。 例如:DeviceManager 是我的父 actor,device 是子 actor。

我想了解 akka stream 流程在演员生命周期中的起点。 当我们创建父 actor 或者 stream 进程什么时候开始?

Akka stream 与Actor生命周期有什么关联?

Akka stream 与Actor生命周期有什么关联?

Akka Streams 和 Typed Actor API 本质上是两个独立的 API,它们可以互操作并共享一些实现细节。 您使用 Actor API 创建的任何 actor 的生命周期完全独立于您正在运行的任何流。 (反之亦然。)

我想了解 akka stream 流程在 actor 生命周期中从哪里开始,当我们创建父 actor 时 stream 进程将启动?

如上所述,流是独立的。 stream(表示为RunnableGraph )将在您run时“启动”。 (并不是说有几种方便的方法可以做同样的事情,例如Source.runWithSource.runForeach等等。任何带有“run”的流方法都可能“启动”stream。)这个“启动”被称为物化,其中你的图(由源、流和汇组成),它只是 stream 的蓝图,被生成。

开始学习的好地方是streams quickstart

我有带有子演员的 ActorSystem 以及在父演员的层次结构中创建的所有子演员。 DeviceManager 是我的父 actor,device 是子 actor。

如果您想让两者互操作,请查看 Akka Streams 文档的Actor Interop部分。 但作为一个例子,如果你有一个 stream 的物联网数据,你正在 Akka Stream 中处理,并且在 stream 的末尾你想将 stream 的元素发送到你的 DeviceManager actor,你可以使用ActorSink.actorRefWithBackpressure 您只需在 stream 的末尾使用该 Sink,然后您的 actor 就会收到正常的 actor 消息。 (如果您不需要背压,您可以只使用ActorSink.actorRef ,但如果您使用的是 Streams,则应该使用背压。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM