从系统外部与 Akka Actor 通信的多种方式?

Multiple ways to communicate with Akka Actor from outside the system?

我的印象是,从 外部 ActorSystem 与 Akka Actor 交流的唯一方法是通过 Inbox。但是我刚刚发现 this snippet from Akka's own documentation 显示:

greeter.tell(new WhoToGreet("akka"), ActorRef.noSender());
inbox.send(greeter, new Greet());

那是哪一个?实际上有可能直接 tell 一个来自外部世界的 Actor,还是 Typesafe 有一个粗心的实习生为他们编写文档?!?

如果可以,那么什么时候做,什么时候用Inbox比如,是一种方法"fire-and-forget"asynchronous/non-blocking 和另一个 synchronous/blocking?

您可以安全地从 actor 外部发送消息。 Akka 将填写一个虚拟发件人。您将无法收到任何回复(尽管您可以为此使用 ask)。

Inboxrelatively recent Actor DSL API that is "some nice sugar on top of the usual ways to create actors". You can either use the standard way to create / communicate with actors or use the Actor DSL 的一部分。它们都是异步的。 Actor DSL 非常适合创建生命周期为一种方法的一次性 actor。 DSL语法的优势在Scala中表现的更明显一些。