AKKA 路由器使用一致性哈希作为路由,但需要将消息传递给特定的参与者
AKKA router using consistenthashing as routing but needs to deliver message to specific actor
我试图找到一个解决方案,其中我有包含特定键值对作为实例数据的 AKKA Actor 实例。我需要的是能够通过使用它拥有的密钥来定位它来更新实例数据。一位演员将拥有一把钥匙,而且它是独一无二的。我看到 consistenthashing 将能够路由到特定节点,其中可能包含大约一千个参与者,但如何传递给特定参与者?
我需要在 java 中知道。
一致性哈希不一定将消息的一致性哈希映射到 1-1 关系中的参与者。它更多的是多对一的关系——所以一个参与者可以成为许多不同的(就产生的一致哈希而言)消息的路由。它也有不同的缺点:
- 它在路由器调整大小方面非常薄弱(随着参与者数量的变化,他们负责的哈希范围也会发生变化,因此随着时间的推移,同一条消息可能会由不同的参与者处理)
- 它需要 actor 在内存中持续存在。
对于您的情况,Cluster Sharding 更有可能是您要查找的内容。
我试图找到一个解决方案,其中我有包含特定键值对作为实例数据的 AKKA Actor 实例。我需要的是能够通过使用它拥有的密钥来定位它来更新实例数据。一位演员将拥有一把钥匙,而且它是独一无二的。我看到 consistenthashing 将能够路由到特定节点,其中可能包含大约一千个参与者,但如何传递给特定参与者?
我需要在 java 中知道。
一致性哈希不一定将消息的一致性哈希映射到 1-1 关系中的参与者。它更多的是多对一的关系——所以一个参与者可以成为许多不同的(就产生的一致哈希而言)消息的路由。它也有不同的缺点:
- 它在路由器调整大小方面非常薄弱(随着参与者数量的变化,他们负责的哈希范围也会发生变化,因此随着时间的推移,同一条消息可能会由不同的参与者处理)
- 它需要 actor 在内存中持续存在。
对于您的情况,Cluster Sharding 更有可能是您要查找的内容。