我想在我的akka群集中的每个节点上都有一些运行时间数据,可以通过内部事件或API调用到一个单节点。我可以将这些数据存储在共享数据库中以使其永久性,但是我宁愿将其存储在内存中以换取速度,因为它不需要持久。Akka群集Singleton,分布式酒吧子和其他内置模块使用八卦协议将分布式状态保持同步。
是否有一种现成的方法可以在我的集群中采用我自己的演员的数据同步?
我已经考虑过仅发布针对分布式酒吧子的更改,但是这似乎没有弹性的消息。如果我将其存储在一个群集的单例中,那该节点掉了,那将是无法生存的。如果整个群集都落下,我不需要持久性,但是如果单个节点这样做,我确实想要弹性。
您应该查看akka分布式数据,该数据应真正称为" akka重复数据",因为它将在所有节点上复制数据。它提供了一个简单的键值商店,并且一个节点上的任何更改都将复制给所有其他节点。由于所有数据都保留在所有节点上,因此最适合用于小型数据集。同样,您的键值对中的值还必须是CRDT(无冲突复制的数据类型)。该模块带有一些涵盖很多用例的预定义CRDT。