C# 当使用ConsistentHashmapping时,如何在运行时将参与者添加到akka.net中的组或池中?

C# 当使用ConsistentHashmapping时,如何在运行时将参与者添加到akka.net中的组或池中?,c#,routing,akka.net,C#,Routing,Akka.net,我想向一个池(组?)添加和删除参与者,该池应该使用一致的散列映射(消息的id与实体的路径一致)通过路由器接收消息。 但是,在创建了该池之后,只返回了IActorRef,我不知道如何“告诉”要添加的新演员 我已经阅读了一些关于布线的教程和提示,例如: 但是这些不合适 也许我需要自己用这些消息编写一个自己的路由器?Akka.Routing包中有预定义的消息,允许添加和删除新的路由。您可以在Akka.net中找到代码行。例如,以下代码将IActorRef添加到现有路由器(我使用ConsistentHa

我想向一个池(组?)添加和删除参与者,该池应该使用一致的散列映射(消息的id与实体的路径一致)通过路由器接收消息。 但是,在创建了该池之后,只返回了IActorRef,我不知道如何“告诉”要添加的新演员

我已经阅读了一些关于布线的教程和提示,例如: 但是这些不合适


也许我需要自己用这些消息编写一个自己的路由器?

Akka.Routing包中有预定义的消息,允许添加和删除新的路由。您可以在Akka.net中找到代码行。例如,以下代码将IActorRef添加到现有路由器(我使用ConsistentHashingGroup对此进行了测试):

有点恼人的是,我不得不在源代码中爬行以找到如何做到这一点的方法,因为它不是petabridge训练营的一部分(或者我是否忽略了它?),而且我在其他任何地方都没有找到答案,尽管我认为这是一个非常典型和常见的场景。这方面的文献资料有些初级


希望这能帮助一些人度过几分钟的生命,在软件领域做一些更有趣的事情,用Akka.net开发,而不是搜索如何使用这个框架

一般来说,强烈反对在运行时向一致性哈希路由器添加参与者,除非您真的知道自己在做什么。当您向一致散列环添加/删除参与者时,每个现有参与者负责的散列范围将发生变化。这意味着以前由参与者处理的一些消息现在将由另一个参与者处理。为什么?如果使用组,这只是将消息定向到处理参与者的不同方式。我可以直接与演员交谈,也可以使用演员选择(基于身份)。路由只是一种策略,带有寻找参与者的标准。你能举例说明这些问题吗?我想在不依赖消息内容的情况下管理实体列表。。。。我可以使用一个特定的Manager参与者,它根据字典中的Id而不是参与者选择,将所有输入消息转发到相应的IActorRef。一致性哈希不会以一对一的关系将消息路由到参与者,而是多对一。这是常见的误解。我已经更详细地描述了它。
var routee = Routee.FromActorRef(actor);
router.Tell(new AddRoutee(routee));