首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >监督任何非儿童演员?

监督任何非儿童演员?
EN

Stack Overflow用户
提问于 2015-07-26 03:48:29
回答 1查看 91关注 0票数 0

这个要求可能听起来很奇怪,或者我不知道如何解决这个问题,我在这里尽我最大的努力用下面的图表来解释

  • 我有一个现有的应用程序(Legacy Application),它作为单个进程运行。
  • Legacy Application对java版本、slf4j、spring等有很老的依赖。
  • 为了使其具有容错性,并添加一些监督,我将其封装在一个Akka Actor中,并在不同的JVM和Actor系统中远程启动。
  • 我从我的新应用程序中启动这个遗留应用程序

处理器= context.actorOf(PropsProcessor," processor ")

我的配置看起来就像

代码语言:javascript
复制
deployment {
      /newApplication/processor/ {
        remote = "akka.tcp://ProcessingSystem@127.0.0.1:2552"
      }

但是由于Processor有所有旧的依赖项,所以我在我的新系统中也得到了它们:

我在找什么?

  • 是否有一种方法可以在ActorSystem(和JVM)中启动遗留应用程序,在那里它可以被封装,但在新应用程序中有监督者?

底线:我希望旧的依赖关系不会泄漏,但是由于其他JVM可以抛出OOM,我想从外部进行监督(新的ActorSystem)。

EN

回答 1

Stack Overflow用户

发布于 2015-07-26 09:55:24

关于依赖关系,只需使用Group路由器,它通过ActorSelection发送消息,并且不需要发送端存在目标类。但是,在这条不受组路由器管理的路径上,行为者的存在。详细信息请访问:http://doc.akka.io/docs/akka/2.4-M2/scala/remoting.html

代码语言:javascript
复制
akka.actor.deployment {
  /parent/remoteGroup {
    router = round-robin-group
      routees.paths = [
        "akka.tcp://app@10.0.0.1:2552/user/workers/w1", 
        "akka.tcp://app@10.0.0.2:2552/user/workers/w1",
        "akka.tcp://app@10.0.0.3:2552/user/workers/w1"]
      }
}

关于监督:只需从路径(在组路由器中使用)解析ActorSelection (resolveOne方法调用),并在新应用程序中将ActorRef对象添加到参与者的context.watch中,然后处理Terminated消息。

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

https://stackoverflow.com/questions/31633442

复制
相关文章

相似问题

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