具有远程节点的akka​​群集的路由配置

时间:2015-03-04 16:58:35

标签: scala akka akka-cluster

我有几个远程节点停留在不同的计算机上并在群集中连接。 因此,它是在一个具有角色'logging'的节点上的日志系统,它在db中写入日志。 我选择使用路由将消息从其他节点传递给记录器。 我有一个节点与主演员和三个儿童演员。每个都必须将日志发送到logger节点。 我对路由器的配置:

akka.actor.deployment {
  /main/loggingRouter = {
    router = adaptive-group
    nr-of-instances = 100
    cluster {
      enabled = on
      routees-path = "/user/loggingEvent"
      use-role = logging
      allow-local-routees = on
    }
  }
  "/main/*/loggingRouter" = {
    router = adaptive-group
    nr-of-instances = 100
    cluster {
      enabled = on
      routees-path = "/user/loggingEvent"
      use-role = logging
      allow-local-routees = on
    }
  }
}

我使用此代码在每个actor中创建路由器

val logging = context.actorOf(FromConfig.props(), name = "loggingRouter")

发送

logging ! LogProtocol("msg")

之后,记录器仅从一个子actor接收消息。我不知道如何调试它,但我猜我为此应用了错误的模式。

此任务的最佳做法是什么? THX。

记录器节点的演员:

system.actorOf(Logging.props(), name = "loggingEvent")

1 个答案:

答案 0 :(得分:0)

问题出在具有相同名称的路由器中。我明白了,好的模式是在主要演员中创建一个路由器并将其发送给孩子们。

相关问题