在使用一致性哈希时,您能决定哪些参与者使用哪些键吗?

时间:2016-08-09 20:52:25

标签: akka.net consistent-hashing

我使用Akka .NET一致性哈希路由器进行了一些实验。在我看来,虽然你可以指定用于散列的密钥,但路由器决定如何在各个角色之间分配密钥。

我本来希望做一些像Actor A接收A类消息,Actor B接收类型B的消息等等。这是否可以使用一致的哈希路由器?

1 个答案:

答案 0 :(得分:2)

不,现有路由器无法实现。

您可以使用EventBus(Context.System.EventStream.Subscribe(Self, typeof<MyMessage>);)将您的演员订阅到特定的消息类型,并通过调用system.EventStream.Publish(new MyMessage());发布它们 - 这样发布的消息将发送给所有订阅者。该方法的局限性在于它仅适用于单个ActorSystem的范围。

对于分布式发布/订阅方案,您可以使用Akka.Cluster.Tools插件,该插件公开此类选项。但请记住,在这种情况下,订阅密钥是字符串而不是消息类型。