2017-09-16 109 views
0

我对Akka聚类和研究概念证明非常陌生。在我的情况下,我有一个在群集上运行的演员,演员的状态为Map [String,Any]。因此,对于任何请求,actor根据传入的消息接收它,它会创建一个新的实体actor和数据映射。这里的问题是地图现在在内存中。是否有可能在Redis或点燃某个地方存储Sharded actor状态?如何将akka sharded actor状态外部化为redis或ignite?

回答

0

你应该先看看akka-persistence(包含在akka中的持久化模块)。快照部分旨在直接保持状态,但您必须从命令/事件源部分开始,快照部分是可选的增强部分。

然后,您可以将此功能与您的分片演员在某个不活动超时后自动钝化相结合。

有了以上这些,您将拥有一个解决方案,可以让您的演员在外部存储系统中保持状态,释放内存,恢复演员的状态。

最后一步是查看哪些存储后端可用于akka持久性并符合您的要求,当然可以实现您自己的要求。