ActorReferences 作为 As 中其他 actors 的成员变量
ActorReferences as member variables in other actors in Akka
Akka 展示了两种获取另一个演员中不同演员的演员参考的首选方法,一种是使用 Receptionist.Find()
,另一种是通过订阅特定演员密钥的接待员。
假设我有一个演员层次结构,其中演员 A 作为 child 生成演员 B。如果我需要向 Actor B 发送消息,我该怎么做?我应该让 B 向接待员注册然后发送消息,还是我可以在 Actor A 中创建一个 ActorReference<B>
的成员变量,我可以用它向 Actor B 发送消息?
当 actor A 生成 actor B 时,它将获得 B 的 ActorRef
。然后它可以在其状态中自由保存该引用。对于 A 将对 B 的引用传递给消息中的另一个 actor 也没有限制(然后接收方 actor 可以自由地将该引用保存在其状态中,等等)。
演员知道与他们合作的演员的身份通常是合理的,就像人们知道同事或 children 的身份通常是合理的一样。接待员基本上是为了设置“初始集合点”。
Akka 展示了两种获取另一个演员中不同演员的演员参考的首选方法,一种是使用 Receptionist.Find()
,另一种是通过订阅特定演员密钥的接待员。
假设我有一个演员层次结构,其中演员 A 作为 child 生成演员 B。如果我需要向 Actor B 发送消息,我该怎么做?我应该让 B 向接待员注册然后发送消息,还是我可以在 Actor A 中创建一个 ActorReference<B>
的成员变量,我可以用它向 Actor B 发送消息?
当 actor A 生成 actor B 时,它将获得 B 的 ActorRef
。然后它可以在其状态中自由保存该引用。对于 A 将对 B 的引用传递给消息中的另一个 actor 也没有限制(然后接收方 actor 可以自由地将该引用保存在其状态中,等等)。
演员知道与他们合作的演员的身份通常是合理的,就像人们知道同事或 children 的身份通常是合理的一样。接待员基本上是为了设置“初始集合点”。