繁体   English   中英

在本地actor上运行的akka​​远程actor

[英]akka remote actor running on local actor

我正在学习akka-remote并尝试自己重新进行http://www.typesafe.com/activator/template/akka-sample-remote-scala

当我尝试在两个单独的JVM中运行项目时,我看到

$ clear;java -jar akkaio-remote/target/akka-remote-jar-with-dependencies.jar com.harit.akkaio.remote.RemoteApp ProcessingActor

ProcessingActorSystem Started

$ clear;java -jar akkaio-remote/target/akka-remote-jar-with-dependencies.jar com.harit.akkaio.remote.RemoteApp WatchingActor

WatchingActorSystem Started
asking processor to process
processing big things

我要求Processing System在端口2552上运行

include "common"
akka {
  # LISTEN on tcp port 2552
  remote.netty.tcp.port = 2552
}

我告诉我的另一个系统( WatchingSystem )在端口2554上运行,但在端口2552上开始processingActor 2552

include "common"

akka {
  actor {
    deployment {
      "/processingActor/*" {
        remote = "akka.tcp://ProcessingActorSystem@127.0.0.1:2552"
      }
    }
  }
  remote.netty.tcp.port = 2554
}

common是使用合适的提供商

akka {
  actor {
    provider = "akka.remote.RemoteActorRefProvider"
  }

  remote {
    netty.tcp {
      hostname = "127.0.0.1"
    }
  }
}

问题/疑虑

  1. 从日志中,我看到processingActor正在WatchingActorSystem上运行,而不是正在ProcessingActorSystem上运行,这是怎么回事?
  2. 我如何看到两个ActorSystem彼此连接。 我看不到日志记录正在发生。 但是,在示例中,我共享了发生日志记录的情况。 我想念什么?

整个代码都发布在Github上并可以正常运行

1)如akka配置文档中所述,将您的部署配置设置为所有processingActor的子代都处于远程状态

您应该将其设置为:

deployment {
  "/processingActor" {
    remote = "akka.tcp://ProcessingActorSystem@127.0.0.1:2552"
  }

2)您需要将日志级别设置为akka日志文档中所述的有用内容

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM