我有几个远程节点停留在不同的计算机上并在群集中连接。 因此,它是在一个具有角色'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")
答案 0 :(得分:0)
问题出在具有相同名称的路由器中。我明白了,好的模式是在主要演员中创建一个路由器并将其发送给孩子们。