当我不需要持久性时,如何设置Akka.NET集群?

时间:2017-11-04 12:30:16

标签: akka.net akka.net-cluster

我有一个相当简单的Akka.NET系统跟踪内存状态,但只包含派生数据。因此,任何演员都可以在启动时从后端数据库加载其最新状态,然后开始接收消息并保持其状态。所以我可以让演员失败并随时重启这个过程。它会重建自己。 但是......我想在多个节点上运行(主要是为了满足内存需求),我想根据需求增加/减少节点数量。也用于在没有停机的情况下发布新版本。 为实现这一目标,群集最轻量级(就持久性而言)的设置是什么?你可以运行没有持久性的群集吗?

1 个答案:

答案 0 :(得分:2)

这不是一个问题,所以让我逐一回答:

  1. 所以我可以让演员失败并在我想要的时候重启这个过程 - 是的,但请记住,过程的硬重置比正常关闭要贵得多。在分布式系统中,如果您的节点出现故障,那么它之前将其与其他节点进行通信比要求它们检测到死节点更好 - 这是节点故障检测的一部分,可以采取一些时间(甚至是分钟)。
  2. 我想根据需求增加/减少节点数 - 这是群集的标准行为。如果是Akka.NET,具体取决于您要使用的功能集,有时可能需要指定群集大小的上限。
  3. 还用于在不停机的情况下发布新版本。 - 大多数集群功能可以使用所谓的角色限定为一组特定节点。每个节点都可以拥有它的一组角色,可以使用它提供的服务,并检测其他节点是否具有所需的功能。出于这个原因,您可以使用角色来进行版本控制。
  4. 你可以运行没有持久性的群集吗? - 是的,这是默认配置(在Akka中,群集节点不需要使用任何形式的持久后端来工作)。 / LI>