首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Akka --在同一主机上部署两个ActorSystems

Akka --在同一主机上部署两个ActorSystems
EN

Stack Overflow用户
提问于 2013-11-07 15:30:12
回答 1查看 1.1K关注 0票数 1

我写这篇文章是为了跟进PlayFramework -- Look up actors in another local ActorSystem,但这一次是专门针对Akka人群的问题。

问题很简单:如果不能通过system.actorSelection简单地查找另一个系统,那么在同一台主机上部署两个ActorSystems (不仅在同一台主机上,甚至在同一个JVM上)有意义吗?

换句话说,既然system1.actorSelection("akka://system2/user/my-actor")不能工作,而system1.actorSelection("akka.tcp://system2@127.0.0.1:2552/user/my-actor")能工作,为什么还要考虑部署两个系统呢?

我怀疑你会问一个用例,所以这里有一个适合你的。假设我有一个使用Akka的复杂实时系统,并且这个系统作为自治代理部署在任意数量的机器上。理想情况下,我希望对分配给此系统的资源进行细粒度控制,并且希望它在某种程度上是独立的。此外,假设我想要编写一个小的控制接口(例如,REST API),其特定目的是提供输入和监控实时系统。当然,我会使该控制系统成为与第一个系统交互的另一个ActorSystem。这是有道理的,对吧?我不想让actors运行在与实时处理相同的ActorSystem中(为了隔离、实用性、单独的日志记录、无污染的资源监视、监督--这将在层次结构中增加一个分支--等等)。该控制ActorSystem永远不会部署在单独的机器上,因为它与实时系统齐头并进。然而,这两个系统通信的唯一方式是通过环回tcp。

我所建议的不是正确的/预期的做事方式吗?我是不是遗漏了什么?有没有办法做到这一点,而我没有考虑过?我的用例需要使用Akka吗?

提前感谢您的投入!

EN

回答 1

Stack Overflow用户

发布于 2013-11-07 16:07:25

您可以为每个分支提供一个顶级执行元,并在专用的调度程序上运行每个分支,而不是使用两个独立的执行元系统。每个顶级参与者也将拥有自己的错误内核。有两个参与者系统通常是有意义的,当它们不相关时,但由于您的通信,我不会将它们分开。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19830231

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档