带有 actor 离开的 Akka 集群节点
Akka cluster nodes with actors leave
假设我在 Akka 集群中有 4 个节点(N1、N2、N3、N4)。假设我有名称为 A 的演员部署了 N4(由 akka 系统对用户透明)。如果我决定不再需要大量计算能力,我会 缩小 服务器到只有 2 个节点,因此节点 N3 和节点 N4 会关闭。演员 A 会怎样?它会死掉并且应该由应用程序逻辑手动重新创建吗?它会在另一个节点上自动重新创建(即使状态丢失)吗?
如果您在节点上有一个常规 actor 并且您关闭了该节点,则该 actor 将与 actor 系统一起关闭。如果您希望特定的 actor(几乎)始终在某个节点上处于活动状态,则可以使用一些工具,ClusterSingleton
使 actor 尽可能连续地在一个节点上保持活动状态,而无需在节点中拥有多个实例cluster,ClusterSharding
可以让 actor 保持活动状态并使用标识符跨集群重新分发。 Akka 持久性允许 actor 的状态在一个节点上停止并在另一个节点上启动。
在文档中阅读有关所有这些的更多信息,我真的建议阅读有关什么是 akka 集群的一般部分,以便在开始使用它之前获得牢固的理解:http://doc.akka.io/docs/akka/2.4.0/scala/index-network.html
假设我在 Akka 集群中有 4 个节点(N1、N2、N3、N4)。假设我有名称为 A 的演员部署了 N4(由 akka 系统对用户透明)。如果我决定不再需要大量计算能力,我会 缩小 服务器到只有 2 个节点,因此节点 N3 和节点 N4 会关闭。演员 A 会怎样?它会死掉并且应该由应用程序逻辑手动重新创建吗?它会在另一个节点上自动重新创建(即使状态丢失)吗?
如果您在节点上有一个常规 actor 并且您关闭了该节点,则该 actor 将与 actor 系统一起关闭。如果您希望特定的 actor(几乎)始终在某个节点上处于活动状态,则可以使用一些工具,ClusterSingleton
使 actor 尽可能连续地在一个节点上保持活动状态,而无需在节点中拥有多个实例cluster,ClusterSharding
可以让 actor 保持活动状态并使用标识符跨集群重新分发。 Akka 持久性允许 actor 的状态在一个节点上停止并在另一个节点上启动。
在文档中阅读有关所有这些的更多信息,我真的建议阅读有关什么是 akka 集群的一般部分,以便在开始使用它之前获得牢固的理解:http://doc.akka.io/docs/akka/2.4.0/scala/index-network.html