我在我的 akka.net 集群中创建了一个监控节点,我正在使用cluster.SendCurrentClusterState(Self)
,但并非所有节点都立即可见,有时节点也会离开集群,虽然日志显示节点已正确删除,但状态显示节点已准备就绪很长时间。
获取整个 akka.net 集群的更新状态的最佳/正确方法是什么?
我在我的 akka.net 集群中创建了一个监控节点,我正在使用cluster.SendCurrentClusterState(Self)
,但并非所有节点都立即可见,有时节点也会离开集群,虽然日志显示节点已正确删除,但状态显示节点已准备就绪很长时间。
获取整个 akka.net 集群的更新状态的最佳/正确方法是什么?
当涉及到集群状态时,有两个重要的属性值得记住:
目前最简单的集群状态是Cluster.Get(Context.System).State
包含有关当前已知成员以及无法访问的节点的信息。
另一种方法是cluster.Subscribe(Self, typeof(ClusterEvent.IMemberEvent), typeof(ClusterEvent.IReachabilityEvent))
(当演员死亡时必须取消订阅)。通过这种方式,您可以在集群状态更改出现时收到通知。
关于确认删除节点所需的长时间。根据“长”的含义,这可能是一些错误的迹象。在这种情况下,如果您可以设置重现步骤的问题,那就太好了。