将消息广播到Akka.Net ConsistentHashingPool路由的最佳方法是什么?

问题描述

这个...

hasPoolRouter.Tell(new broadcast(new SendStatus()))

不起作用。该消息仅到达一致哈希ID匹配的路由,这违反了广播的目的。

路由器参与者的定义如下:

hasPoolRouter = ... .WithRouter(new ConsistentHashingPool(4))

解决方法

我打算在本地创建一个池,并以集群配置运行,并且只有一个是在本地创建的,因此广播只发送到一个本地实例。我在配置中也犯了一个错误,并且使用相同的actor路由进行了两个配置,使情况变得更糟。产生的好处是,我通过拧紧它更好地理解了这些东西是如何工作的。

为澄清起见,我在同一角色路径上同时配置了一个集群集群和一个非集群集群。我正在将广播发送到群集的IActorRef,并且仅将其传递到多个池化的非群集广播之一。如果我一直在运行两个节点,则两个节点会收到它,但不是全部,并且可能把我弄糊涂了。