簡體   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