scala - 在Akka中是否必须拥有大师级 Actor ?

标签 scala akka actor

我正在尝试了解有关 akka Actor (在 Scala 中)的一些知识,但我提出了这个我找不到答案的问题。

您是否一定需要创建一个主actor并从那里创建带有workerRouter的worker?
或者你可以跳过这一步,直接从你的 Main 对象使用 workerRouter 创建 worker 吗?

如果您需要任何代码,请告诉我,但我基本上是在关注 akka 的 HelloWorld。

最佳答案

严格来说:是的。在业务逻辑方面:没有。

Akka 的 Actor 是设计的,hierarchical .这意味着,您创建的任何 Actor 都将始终有一个“ parent ”/“主人”,如果没有人自己定义,那么 /user guardian actor .

但是,请注意,从 Akka 的系统角度来看,这种层级关系涉及 actor 生命周期和子监督。 它不关心您如何将参与者与您的消息和/或任何自定义生命周期处理联系起来。

因此,从您的应用程序的角度来看,您可以使用某种共识方案让您的工作角色作为对等节点运行。他们当然会有系统父级( /user 如果你不自己定义),但只要你不关心监督 - 如果你刚开始学习 Akka 你可能不会 - 一切都会起作用美好的。

最后,请注意,在“工作池”设置中工作可以有多种方案。例如,this article on work pulling可能会给您一些有关此类问题的可能解决方案的启发。

关于scala - 在Akka中是否必须拥有大师级 Actor ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28693448/

相关文章:

scala - 如何在spark cassandra DataFrame中设置一致性级别ONE和ifNotExists

html - 如何在 Play 中仅对一页使用特定样式表

scala - Scala REPL 和 Clojure REPL 的区别——编译速度

scala - Akka Http : Exceeded configured max-open-requests value of [32]

uml - 同步消息可以使用异步消息作为响应而不是回复消息吗?

java - Akka Typed actor in play websocket

c# - C# 或其他语言中的 Scala 风格抽象模块?

java - Akka 并发只有 1 个 actor

f# - 这段 Akka.NET 代码有什么问题?