![](/img/trans.png)
[英]How can I send a message to my akka actor system's event stream without addressing the message to any actor in particular?
[英]Wait for akka actor system to become available
我正在将AKKA 2.1与Scala 2.10一起使用。
我需要多台机器来启动actor系统并实例化一些actor。 此后,每个系统都需要访问所有其他系统,并使用“ actorFor(...)”来收集对其参与者的引用。
但是,我需要一种actor系统在连接之前等待其他系统引导的方法,否则会出错。
如果角色系统A在B脱机时连接到B,则我的程序失败。 但是,如果A连接到B并在它存在于B之前获得了远程actor引用,则一旦B实际上实例化actor,程序就可以继续进行。
简而言之,在尝试连接到B之前,我需要某种方式等待创建事件。 在Scala + AKKA中有什么好方法吗?
您可能需要研究对Akka的群集支持。 它使您可以在其他计算机加入群集并可以进行通信时侦听事件。
99%的时间解决与人的问题会让您与演员解决。 想象它是建筑物(演员系统)和人员(演员)。
您可以在“ / user / receptionist”这样的通用路径下创建一个在ActorSystem启动时创建的“接待员” actor(可以在ActorSystem启动时将Akka Extensions配置为加载)创建,然后告诉接待员与您联系演员X / Y / Z上线后,让X / Y / Z向接待员注册。 因此,如果外部参与者提出要求时,如果X / Y / Z不存在,它将存储请求直到超时或X / Y / Z“报告”。
首先, actorSelection
现在是建议的机制,用于获取对参与者的引用,尤其是在整个网络中。 参见: Akka文档
在异步和分布式系统中,这是一个不平凡的问题。 akka群集支持使用了从类似于dynamo的框架中采用的各种机制。 如果您想象每个参与者都是人,每个参与者系统都是建筑物中的人,则您的任务类似于询问鲍勃是否已穿过马路进入建筑物。 您可以:
actorRef
直到成功并处理错误
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.