2014-10-06 31 views
1

我一直在阅读Akka的文档,但我无法弄清楚要做些什么来完成我的想法。如何使用控制台应用程序与Akka总是运行的应用程序通信?

我想创建一个小型的Akka应用程序(应用程序A),它意味着“始终运行”。这个应用程序不是要部署在云架构上,而是部署在一台机器上。

我也想为这个应用程序添加一些“人性化交互”功能,所以我正在考虑创建一个控制台应用程序(应用程序B)来让某人向应用程序A中的主人发送消息,包括例如“关闭”(而不是Ctrl C)或“立即强制执行任务X”。

这两个应用程序将运行在同一台机器上,我认为要连接该机器上的终端并启动控制台应用程序。

所以我没有得到的是:

1)我应该使用应用程序A上的远程演员为了使其从应用程序B可见?

2)在两个应用程序之间或在这个特定场景(控制台 - >应用程序)之间使用Actor消息进行通信是否有可能并且是一种好的做法还有其他可行的方法?注意我不需要这种通信的安全标准。

3)如果我可以将Actor消息发送给Local Actors,那么为Remote Actors描述的路由系统“schema:// domain:port/path”对于Local Actors也有效?

最后,作为一般原则,考虑我要保持它的简单...

回答

1

1)为什么不。你也可以考虑使用Spray,它可以让你通过http访问。甚至使用Typesafe Console - http://resources.typesafe.com/docs/console/manual/getting-started.html

2)没关系。唯一需要注意的是,在Akka Remote中没有保证交货。如果你没有连接问题 - 应该没问题。

3)是的,但进程将连接到自己的端口。

+0

请您详细介绍第3点的内容吗?我没有明白这一点,因为我缺乏阿卡的技能。 – Max 2014-10-07 19:02:21

+0

哦,我的意思是,如果你在actorSelection中使用“schema:// domain:port/path”,akka会连接到域和端口并在那里查找actor:所以,假设为本地actor启用了remoting - 将被远程查找而不是本地查找。 – dk14 2014-10-07 19:07:03

相关问题