java - 如何在 Akka Actor 之间传递远程引用?

标签 java scala akka

我有三个远程 Akka 参与者:A、B 和 C。A 向 B 发送消息,B 保存 A 的引用(见下文)。此外,我需要 B 将 A 的引用发送给 C。我该怎么做? B 的 Java 代码如下所示:

public class B extends UntypedActor {
    //---------------------------------------------------------------
    /**
     * {@inheritDoc}
     */
    @Override
    public void onReceive(Object object) throws Exception {
        if (refA == null) {
            refA = getSender();
        }

        // how do I send refA to C???
        refC.tell(refA, getSelf()); // <== like this?
    }

    // set during onReceive
    private ActorRef refA = null;

    // initialized in constructor
    private final ActorRef refC;
}

我刚刚检查过 ActorRefSerializable 所以理论上我上面提出的解决方案应该有效但是有不同的/官方的/更干净的方法吗?

最佳答案

您的解决方案看起来不错,而且很常见。 Akka 引用设计为位置透明和可序列化。因此,您可以将 Actor 引用发送到远程客户端,他们将直接使用它们而无需任何额外设置。

关于java - 如何在 Akka Actor 之间传递远程引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21832131/

相关文章:

scala - def layout[A](x : A) = . .. Scala 中的语法

scala - 如何判断 Scala 宏的参数是否是函数?

java - Akka Java FSM 示例

java - 如何根据鼠标位置在折线图上绘制十字准线

java - Chromium 与 SeleneseTestCase

java - 执行 MVN 安装时出现未知主机错误

java - 在 Spark Java 应用程序中使用 Tuple2 时出现编译错误

模式匹配中的Scala隐式提取值?

java - Akka:如何安排延迟间隔不断增加的失败重试?

java - 扫描仪 i java 不适用于所有输入