16.5.1 Acctor 的寻址


理解 ActorPath

如果我们有一个 ActorRef 的话, 可以调用 actorRef.path()得到 ActorURL

akka://ActorSystem/user/actor

Actor 的路径包含两部分

  • 源:akka://ActorSystem
  • 路径:/user/actor

源可以在本地(akka://ActorSystem). 也可以在远程(akka.tcp://Actor [email protected])

无论是本地还是远程 Actor, 路径的格式相同(例如/user/actor)。

ActorRef 除了包含 ActorPath 外还有 ActorUID, 比如#123456.

ActorPath 仅仅包 含了 Actor 的路径。


获取远程 ActorActorRef

通过ActorSystem.actorSelection我们可以查询位于任意路径的 Actor,然后向其发送消息。

val actorSelection = actorSystem.actorSelection("akka.tcp://[email protected]:10000/user/my-actor")

上面的语句会返回 ActorSelection, 我们可以向 ActorSelection 发送消息.

不过 ActorSelection 并不要求对应的 Actor 一定存在。

如果我们向 ActorSelection 发送消息而其对应的 Actor 不存在,消息就会丢失。

Copyright © 尚硅谷大数据 2019 all right reserved,powered by Gitbook
该文件最后修订时间: 2019-07-02 08:12:45

results matching ""

    No results matching ""