【发布时间】:2017-12-16 03:55:32
【问题描述】:
在 Akka 文档 (https://doc.akka.io/docs/akka/current/general/addressing.html) 中,每个的定义是
Logical Actor Paths:遵循父母监督链接到根监护人的唯一路径称为逻辑 Actor 路径。此路径与 Actor 的创建祖先完全匹配,因此一旦设置了 Actor 系统的远程配置(以及路径的地址组件),它就完全具有确定性。
物理 Actor 路径:虽然逻辑 Actor 路径描述了一个 Actor 系统中的功能位置,但基于配置的远程部署意味着 可以在不同的网络上创建一个 Actor宿主而不是其父节点,即在不同的参与者系统中。在这种情况下,从根守护者向上跟踪参与者路径需要遍历网络,这是一项昂贵的操作。因此,每个参与者也有一个物理路径,从实际参与者对象所在的参与者系统的根守护者开始。在查询其他参与者时使用此路径作为发件人参考将让他们直接回复此参与者,从而最大限度地减少路由引起的延迟。
我的问题是:一个actor和它的父级怎么可能存在于不同的actor系统中? 请有人解释一下如何理解物理路径?基于阅读 Akka 文档 (https://doc.akka.io/docs/akka/current/general/actor-systems.html),我对 Actor 系统的理解是,每个 Actor 系统都以一个根 Actor 开始,然后是它的子 Actor,然后是它的孙 Actor。因此,根据定义,每个 Actor 的父代都驻留在同一个 Actor 系统中。可能是我对actor系统定义的理解不对?
【问题讨论】: