使用 ConsistentHashmapping 时,如何在运行时将 actor 添加到 akka.net 中的组或池中?

Bea*_*ker 2 c# routing akka.net

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

我已经阅读了几个关于路由的教程和提示,例如:https : //github.com/petabridge/akka-bootcamp/tree/master/src/Unit-3/lesson2 但这些不适合。

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

Bea*_*ker 5

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

var routee = Routee.FromActorRef(actor);
router.Tell(new AddRoutee(routee));
Run Code Online (Sandbox Code Playgroud)

有点烦人,我不得不浏览源代码以找到如何执行此操作的方法,因为它不是 petabridge 训练营的一部分(或者我是否忽略了它?)而且我没有在其他任何地方找到答案,即使我认为这是一个非常典型和常见的场景。该领域的文档有些简陋。

希望这可以帮助那里的人在生命中安全几分钟,并在使用 Akka.net 开发的软件领域做一些更有趣的事情,而不是搜索如何使用这个框架。;-)