Akka.net 当使用一致散列时,您可以决定哪些参与者使用哪些键吗?

Akka.net 当使用一致散列时,您可以决定哪些参与者使用哪些键吗?,akka.net,consistent-hashing,Akka.net,Consistent Hashing,我用Akka.NET一致性哈希路由器做了一些实验。在我看来,虽然您可以指定散列使用什么密钥,但是路由器决定如何在参与者之间分配密钥 我想做一些事情,比如Actor A获取类型A的消息,Actor B获取类型B的消息,等等。这在一致哈希路由器中是可能的吗?不,对于现有路由器是不可能的 您可以使用EventBus(Context.System.EventStream.subscribe(Self,typeof);)为参与者订阅特定的消息类型,并通过调用System.EventStream.publi

我用Akka.NET一致性哈希路由器做了一些实验。在我看来,虽然您可以指定散列使用什么密钥,但是路由器决定如何在参与者之间分配密钥


我想做一些事情,比如Actor A获取类型A的消息,Actor B获取类型B的消息,等等。这在一致哈希路由器中是可能的吗?

不,对于现有路由器是不可能的

您可以使用EventBus(
Context.System.EventStream.subscribe(Self,typeof);
)为参与者订阅特定的消息类型,并通过调用
System.EventStream.publish(new MyMessage())来发布它们-通过这种方式,已发布的消息将发送给所有订阅者。这种方法的局限性在于它只能在单个Actor系统的范围内工作

对于分布式发布/订阅场景,您可以使用插件,它公开了这样的选项。但是请记住,在这种情况下,订阅密钥是字符串而不是消息类型