0

我们正在尝试创建几个节点级别参与者 [池路由器] 用于应用级别管理、本地路由和节流目的。

提到节点特定角色作为这些参与者的目标角色,以进行严格的本地路由。

下面是示例代码和 hocon。

//// In App Start - Actor is initialized and stored in static container
var props = Props.Create(() => new ThrottlerActor()).WithRouter(FromConfig.Instance);
actorSystem.ActorOf(props, "ThrottlerActor");

## hocon ##
/ThrottlerActor{
    router = round-robin-pool
    nr-of-instances = 100
    cluster {
        enabled = on
        allow-local-routees = on
        max-nr-of-instances-per-node = 10
        use-role = node1
    }
}

但是当我们向这个actor发送消息时,它的行为就像一个集群actor。它将第 n+1 个 [n = max-nr-of-instances-per-node] 消息重定向到不同节点中的相似参与者。看起来好像角色设置被忽略了。

我们甚至尝试禁用集群 [cluster -> enabled = off 并且还通过从 hocon 中删除集群配置]。但它没有用。在用户监护人之下创建此路由器的那一刻,参与者的行为就好像它是一个集群参与者。

请指教。

4

1 回答 1

0

我们甚至尝试禁用集群 [cluster -> enabled = off 并且还通过从 hocon 中删除集群配置]。但它没有用。在用户监护人之下创建此路由器的那一刻,参与者的行为就好像它是一个集群参与者。

所以这对我来说就像你的 HOCON 没有正确加载一样。您不能让路由器cluster.enabled = off在其部署内部路由到其他节点上的集群路由。最初监听集群所需的代码在关闭后就被省略了。

尝试完全删除集群部分并向后工作。您的问题似乎是正在加载哪个配置/它来自哪里 - 不是 Akka.NET 的错误。

于 2019-10-22T19:36:57.393 回答