首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何获得整个Akka.net集群的更新状态?

如何获得整个Akka.net集群的更新状态?
EN

Stack Overflow用户
提问于 2017-04-28 12:45:19
回答 1查看 258关注 0票数 0

我在我的akka.net集群中创建了一个监视节点,我使用的是cluster.SendCurrentClusterState(Self),但并不是所有的节点都是立即可见的,有时一个节点离开集群,当日志说该节点被正确删除时,状态显示该节点已经运行了很长一段时间。

获得整个akka.net集群更新状态的最佳/正确方法是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-30 07:03:39

当谈到集群状态时,有两个重要的属性值得记住:

  1. 没有全局集群状态这样的东西。每个节点对集群当前的看法都有自己的看法。这是采用点对点方法的自然效果(因此没有一个主节点,可以设置任意状态)。
  2. 群集状态不会立即更新。所有的状态都是为了达到最终的收敛而构建的,但是在当前的集群节点状态被传递给其他人之前,可能会经过一段时间。

目前集群状态中最简单的是Cluster.Get(Context.System).State,它包含有关当前已知成员和不可访问节点的信息。

另一种方法是cluster.Subscribe(Self, typeof(ClusterEvent.IMemberEvent), typeof(ClusterEvent.IReachabilityEvent)) (演员去世时必须取消订阅)。这样,您就可以在集群状态更改出现时得到通知。

对于需要很长时间确认已删除的节点。根据“长”的含义,这可能是某种错误的迹象。在这种情况下,如果您可以使用repro步骤设置一个问题,那就太好了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43680587

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档