c# - Akka.Net (C#) 向集群中的所有参与者发布消息

标签 c# akka.net akka.net-cluster

我正在尝试在集群中使用发布/订阅模式。 这方面的文档非常差。

我正在寻找的场景是: 1. Actor 订阅一个事件。 2. 在代码的任意位置,向参与者系统中此事件的所有订阅者发布消息,而不选择参与者。

根据“现有”文档,这样做的方法是使用: DistributedPubSub.Get(Context.System).Mediator;

但是,一旦启动调解器,我就会收到“关联”异常。

  1. 我错过了什么?
  2. 谁能给我指出一个工作演示?

谢谢

最佳答案

您真的希望向集群中每个节点中的所有参与者发送相同的消息吗?

我是 Akka.NET 的新手,但如果我要着手解决这个问题,我可能会尝试创建一个 actor 来监听集群八卦以了解参与节点,并可能尽可能地记录各个 actor 的记录,否则找到一种方法来查询包含的参与者的各个节点。一旦您引用了这些 Actor ,向他们发送消息应该足够直截了当。

无需担心发现集群中所有参与者的内置方式,您可以将其构建为每个节点的一部分,以指定一个参与者(可能从路由器 1:1 部署到节点),维护所有参与者的注册表本地 Actor 。也许可以在查询时提供对这些参与者的引用,或者该节点可以仅充当代理/网关以向本地参与者广播消息。

一般来说,如果您谈论的是路由器后面的节点,那么您似乎应该能够将您的消息包装在广播消息中,以便为路由获得预期的效果。

关于c# - Akka.Net (C#) 向集群中的所有参与者发布消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36239797/

相关文章:

c# - 如何管理一百万条记录?

akka.net - Actor 可以在 Akka.net 中查看它的 MessageQueue

akka.net - Akka.Cluster 的端口耗尽问题

c# - 如何保留部署在不同集群节点上的两个相同参与者之间的状态? (阿卡网)

c# - 为什么调用 StackOverflowException?为什么不是 HeapOverSizedException?

c# - 从一个表中读取并插入到另一个表中 - 一次一行

c# - DrawUserIndexedPrimitives : Why do the indices have to be short instead of int?

akka.net - 如何在 Akka.Net 中对 DDD 业务对象结构进行建模?

azure - 将 Akka.net 集群八卦发送到 Azure 辅助角色控制台