使用Akka群集碎片时,如何处理JVM崩溃



我正在练习Akka群集碎片功能。我使用碎片函数在3个节点中启动了几个实体。但是我不知道当一个节点崩溃时如何在其他节点中恢复这些实体。

有人可以帮助我了解我该怎么做。

碎片功能是我在开源项目中看到的最强大的功能之一。在过去的2个3年中,我使用Akka 2.3.12版本使用碎片。通常,希望每个节点约10片,但是我的部署使用了5个节点,我每个节点有20个碎片,而且工作正常。

必须理解,碎片只是一个路由逻辑,它实际上实例化了由碎片功能管理的演员管理的位置透明度(什么节点和什么shard)。

现在关于演员的恢复:如果您的演员已通过发送的命令积累了状态,这对您的业务很重要,那么您必须坚持接收到的命令,并能够从所有节点可用的某些持久性中恢复(CQRS& Event Sourcing)。为此,Akka提供http://doc.akka.io/docs/akka/2.4.16/java/persistence.html功能,该文档结构非常好,并为您提供有关如何实现此恢复的足够信息。作为持续的来源,我使用akka持久性使用C*插件 - https://github.com/akka/akka-persistence-cassandra上的详细信息

最新更新