0

我有几个远程节点,它们位于不同的计算机上并连接在集群中。因此,它是具有“日志记录”角色的节点之一上的日志系统,它在数据库中写入日志。我选择使用路由将消息从其他节点传递到记录器。我有一个带有主要演员和三个子演员的节点。他们每个人都必须将日志发送到记录器节点。我对路由器的配置:

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
    }
  }
}

我用这段代码在每个参与者中创建路由器

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

并且寄出

logging ! LogProtocol("msg")

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

这项任务的最佳实践是什么?谢谢。

来自记录器节点的演员:

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

1 回答 1

0

问题在于具有相同名称的路由器。我看到了,好的模式是在主角中创建一个路由器并将其发送给孩子。

于 2015-03-28T14:27:53.333 回答