akka stream 在一个简单的流程中创建了多少个演员?
how many actor does akka stream create in a simple flow?
我有流码
val source = Source.actorRef[Msg[T]](1000, OverflowStrategy.dropHead)
val flow=source.map(println(_)).to(Sink.onComplete{case _=>println("complete")}).run()
在我 运行 代码之后,我从日志文件中发现,akka 创建了两个参与者:
akka://xxxx/flow-0-0-unknown-operation#-969158424]
akka://xxxx/flow-0-1-actorRefSource#-1265269541]
这个"unknown-operation"演员是什么?
我可以重命名吗?我有点困惑,因为一旦我将代码更改为:
val flow=source.map(println(_)).to(Sink.onComplete{case _=>receiver.stop()})
.named("iwantName").run()
日志输出为:
akka://xxx/flow-0-0-unknown-operation#1904555295]
akka://xxx/flow-0-1-iwantName-actorRefSource#-1328507659]
我尝试将其重命名为 "iwantName" 但它已更改为另一个演员。
谁能给我解释一下,2 actor 的确切功能是什么?
在具体化 akka-stream 图时,它至少会创建一个 actor,即实际执行流阶段的 actor。如果图包含异步边界,当流 运行ning.
时,边界的每一侧都将属于一个单独的参与者。
在您的情况下,Source.actorRef
将创建一个演员,而流的其余部分将 运行 在一个单独的演员中。然而,这些参与者是实现细节,而不是您的应用程序将直接与之交互的东西。
演员的名字很奇怪,因为您可以根据需要多次具体化图形,并且每次具体化都会创建演员。
我有流码
val source = Source.actorRef[Msg[T]](1000, OverflowStrategy.dropHead)
val flow=source.map(println(_)).to(Sink.onComplete{case _=>println("complete")}).run()
在我 运行 代码之后,我从日志文件中发现,akka 创建了两个参与者:
akka://xxxx/flow-0-0-unknown-operation#-969158424]
akka://xxxx/flow-0-1-actorRefSource#-1265269541]
这个"unknown-operation"演员是什么?
我可以重命名吗?我有点困惑,因为一旦我将代码更改为:
val flow=source.map(println(_)).to(Sink.onComplete{case _=>receiver.stop()})
.named("iwantName").run()
日志输出为:
akka://xxx/flow-0-0-unknown-operation#1904555295]
akka://xxx/flow-0-1-iwantName-actorRefSource#-1328507659]
我尝试将其重命名为 "iwantName" 但它已更改为另一个演员。
谁能给我解释一下,2 actor 的确切功能是什么?
在具体化 akka-stream 图时,它至少会创建一个 actor,即实际执行流阶段的 actor。如果图包含异步边界,当流 运行ning.
时,边界的每一侧都将属于一个单独的参与者。在您的情况下,Source.actorRef
将创建一个演员,而流的其余部分将 运行 在一个单独的演员中。然而,这些参与者是实现细节,而不是您的应用程序将直接与之交互的东西。
演员的名字很奇怪,因为您可以根据需要多次具体化图形,并且每次具体化都会创建演员。