我正在尝试配置一个群集组路由器,并希望理智地检查我的假设"如何"这很有效。
我在群集中有2个独立的节点,它们具有以下角色" mainservice"和" secondservice"。在#34; mainservice"我想在" secondservice"中发送消息给一个Actor。使用循环组路由器。
在akka hocon配置中,我在akka.actor.deployment部分中有以下内容:
/secondserviceproxy {
router = round-robin-group
routees.paths = ["/user/gateway"]
nr-of-instances = 3
cluster {
enabled = on
allow-local-routees = off
use-role = secondservice
}
}
我基于文档的假设是我可以创建一个" secondserviceproxy" " mainservice"中的演员这将处理消息路由到我的" secondservice"的任何正在运行的实例。在循环的基础上。
var secondServiceProxy = Context.System.ActorOf(Props.Empty.WithRouter(FromConfig.Instance), "secondserviceproxy");
secondServiceProxy.Tell("Main Service telling me something");
我还假设routees.path属性意味着消息被发送到" secondservice"位于它的Actor层次结构中如下:" / user / gateway"。
我的工作假设是否正确?由于此实现在" secondservice"。
中没有产生任何结果答案 0 :(得分:1)
您的假设是正确的。可能发生的事情是,在路由器有机会在集群周围构建路由器的路由表之前,您的消息正在通过集群路由器进行处理(它是通过监视集群八卦来构建的)。
结果?您的消息最初以UINavigationBar
结尾。然后,一旦群集完全形成,它将通过,因为路由器知道群集周围的预期接收者。
您可以通过订阅该演员的死信并检查该消息是否在哪里来验证您是否愿意。你可以这样做:
DeadLetters