具有远程节点的 akka 集群的路由配置
routing configuration for akka cluster with remote nodes
我有几个远程节点位于不同的计算机上并连接在集群中。
因此,在 db 中写入日志的是具有 'logging' 角色的节点之一上的日志系统。
我选择使用路由将消息从其他节点传递到记录器。
我有一个主要演员和三个儿童演员的节点。他们每个人都必须将日志发送到记录器节点。
我的路由器配置:
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")
问题出在同名路由器中。我明白了,好的模式是在 main actor 中创建一个路由器并将其发送到 children.
我有几个远程节点位于不同的计算机上并连接在集群中。 因此,在 db 中写入日志的是具有 'logging' 角色的节点之一上的日志系统。 我选择使用路由将消息从其他节点传递到记录器。 我有一个主要演员和三个儿童演员的节点。他们每个人都必须将日志发送到记录器节点。 我的路由器配置:
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")
问题出在同名路由器中。我明白了,好的模式是在 main actor 中创建一个路由器并将其发送到 children.