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