我正在使用ConsistentHashingGroup,当群集中具有该组路由的Akka节点发生故障时,我想得到通知。
是否有任何方法可以订阅群集事件? 查找在崩溃节点上放置哪些路由的最佳方法是什么? 我想从持久性存储中恢复那些路由的数据。
答案 0 :(得分:0)
那将需要侦听集群事件。使用一致的散列,当节点拓扑发生更改(删除或添加节点)时,使用散列进行路由将意味着消息可能会开始发送到比以前发送到的其他参与者。要知道散列给特定演员的是什么,您可能必须向演员报告每个消息。但是,如果状态绑定到特定的哈希值,则会出现问题,因为如何保证在将消息路由到参与者之前,您必须恢复正确的状态。
您可能想研究Akka Cluster Sharding,它根据标识符进行路由,并确保给定的id只有一个actor处于活动状态,在集群更改时重新平衡等等。对于绑定到的持久状态非常有用一个特定的收件人。