当前位置:  开发笔记 > 编程语言 > 正文

当我的节点加入集群时,Akka.net集群中是否有事件?

如何解决《当我的节点加入集群时,Akka.net集群中是否有事件?》经验,为你挑选了1个好方法。

在我的Akka.Net集群中,我有几个节点.当我成功加入群集时,我想要启动通信.我可以在日志中看到我欢迎来到集群:

Welcome from [akka.tcp://Animatroller@hakan-el:8899]

但我看不到任何我可以订阅的事件.



1> Bartosz Sypy..:

通常,在这种情况下,您希望订阅ClusterEvent.MemberUp,当前新的节点将成为群集的一部分时,将接收哪个当前角色.

处理此类事件的actor的示例:

class MyActor : ReceiveActor 
{
    private readonly Cluster cluster = Cluster.Get(Context.System);
    public MyActor()
    {
        Receive(memberUp => memberUp.Member.Address == cluster.SelfAddress, memberUp =>
        {
            // handle current node up
        });
    }

    protected override void PreStart()
    {
        cluster.Subscribe(Self, new []{ typeof(ClusterEvent.MemberUp)});
    }

    protected override void PostStop()
    {
        cluster.Unsubscribe(Self);
        base.PostStop();
    }
}

在这种情况下memberUp => memberUp.Member.Address == cluster.SelfAddress,处理程序的附加过滤器意味着,只有当该actor驻留的当前节点将加入集群时才会处理它.从其他节点发送的向上事件将被忽略.

推荐阅读
wangtao
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有