加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

scala – 在Akka集群中同步数据的简单方法?

发布时间:2020-12-16 08:45:12 所属栏目:安全 来源:网络整理
导读:我有一些运行时数据我希望存在于我的Akka集群中每个节点上的指定actor上,可以通过内部事件或API调用更新到单个节点.我可以将这些数据存储在共享数据库中以使其永久化,但我宁愿将其存储在内存中以提高速度,因为它不需要持久化. Akka Cluster Singleton,Distri
我有一些运行时数据我希望存在于我的Akka集群中每个节点上的指定actor上,可以通过内部事件或API调用更新到单个节点.我可以将这些数据存储在共享数据库中以使其永久化,但我宁愿将其存储在内存中以提高速度,因为它不需要持久化. Akka Cluster Singleton,Distributed Pub Sub以及可能的其他内置模块使用八卦协议来保持分布式状态同步.

是否有一种现成的方法来在我的集群中采用我自己的actor的数据同步?

我已经考虑过只发布对Distributed Pub Sub的更改,但似乎这对于丢弃的消息不具有弹性.如果我将它存储在一个集群单例中,那么如果该节点发生故障,则无法生存.如果整个群集出现故障,我不需要持久性,但如果个别节点这样做,我确实需要恢复能力.

解决方法

您应该看一下 Akka Distributed Data,它应该被称为“Akka Replicated Data”,因为它将在所有节点之间复制数据. 它提供了一个简单的键值存储,并且在一个节点上所做的任何更改都将复制到所有其他节点.由于所有数据都保存在所有节点上,因此最适用于小型数据集.此外,键值对中的值需要是CRDT(无冲突复制数据类型).该模块附带了一些预定义的CRDT,涵盖了很多用例.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读