我正在练习Akka群集分片功能。 我使用分片功能在3个节点中启动了几个实体。 但我不知道当一个节点崩溃时,如何在其他节点中恢复实体。
有人可以帮助我理解我该怎么做。
答案 0 :(得分:0)
分片功能是我在开源项目中见过的最强大的功能之一。 我使用akka 2.3.12版本进行分片,已经成功使用了过去2 3年。 通常希望每个节点有大约10个分片,但我的部署使用了5个节点,每个节点有20个分片,工作正常。
必须要理解的是,分片只是一种路由逻辑,它为您提供了实际实例化分片功能所管理的actor的位置透明度(什么节点和什么分片)。
现在关于演员的恢复: 如果你的演员通过发送的命令累积了状态,这对你的业务很重要,那么就意味着你必须坚持收到的命令,并能够从所有节点可用的持久性中恢复(CQRS和事件源)。为此,akka提供http://doc.akka.io/docs/akka/2.4.16/java/persistence.html功能,此文档结构良好,并为您提供有关如何实现此恢复的足够信息。作为持久性源,我使用带有C *插件的akka持久性 - 详细信息https://github.com/akka/akka-persistence-cassandra