我有一些运行时数据,希望存在于我的 Akka 集群中每个节点上的指定参与者上,这些数据可以通过内部事件或对单个节点的 API 调用进行更新。我可以将此数据存储在共享数据库中以使其永久化,但我宁愿将其存储在内存中以提高速度,因为它不需要持久化。Akka Cluster Singleton、Distributed Pub Sub 和可能的其他内置模块使用 gossip 协议来保持分布式状态同步。
是否有现成的方法来在我的集群中采用我自己的参与者的数据同步?
我曾考虑将更改发布到 Distributed Pub Sub,但似乎这对丢弃的消息没有弹性。如果我将它存储在一个集群单例中,如果该节点出现故障,它将无法生存。如果整个集群出现故障,我不需要持久性,但如果单个节点发生故障,我确实需要弹性。