我有一些运行时数据,我希望在我的Akka集群中的每个节点上都有一个指定的参与者,这些数据可以通过内部事件或对单个节点的API调用来更新。我可以将这些数据存储在共享数据库中,以使其永久化,但我更愿意将其存储在内存中以加快速度,因为它不需要持久化。Akka集群Singleton、分布式Pub Sub以及可能的其他内置模块使用八卦协议来保持分布式状态的同步。
是否有现成的方法可以在集群内采用我自己的参与者的数据同步?
我曾经考虑过仅仅发布对分布式Pub的更改,但这似乎无法抵抗掉的消息。如果我将它存储在单个集群中,那么如果该节点崩溃,它就无法生存。如果整个集群出现故障,我不需要持久化,但如果单个节点出现这种情况,我需要恢复力。
发布于 2017-06-24 19:56:45
您应该看看Akka分布式数据,它实际上应该被称为"Akka复制数据“,因为它将在所有节点上复制数据。它提供了一个简单的键值存储,在一个节点上所做的任何更改都将复制到其他所有节点上。由于所有数据都保存在所有节点上,所以最好将其用于小数据集。此外,键-值对中的值需要是CRDT(无冲突复制数据类型)。该模块附带了一些预定义的CRDT,涵盖了许多用例。
https://stackoverflow.com/questions/37929266
复制相似问题