Hau*_*man 1 akka.net akka.net-cluster
在我的Akka.Net集群中,我有几个节点.当我成功加入群集时,我想要启动通信.我可以在日志中看到我欢迎来到集群:
Welcome from [akka.tcp://Animatroller@hakan-el:8899]
Run Code Online (Sandbox Code Playgroud)
但我看不到任何我可以订阅的事件.
通常,在这种情况下,您希望订阅ClusterEvent.MemberUp,当前新的节点将成为群集的一部分时,将接收哪个当前角色.
处理此类事件的actor的示例:
class MyActor : ReceiveActor
{
private readonly Cluster cluster = Cluster.Get(Context.System);
public MyActor()
{
Receive<ClusterEvent.MemberUp>(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();
}
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下memberUp => memberUp.Member.Address == cluster.SelfAddress,处理程序的附加过滤器意味着,只有当该actor驻留的当前节点将加入集群时才会处理它.从其他节点发送的向上事件将被忽略.
| 归档时间: |
|
| 查看次数: |
329 次 |
| 最近记录: |