如何处理主演员失败

时间:2014-07-31 10:08:32

标签: java hadoop akka

我是Akka的新手,我建立了一个连接到HDFS的Akka模型,提取数据,处理数据并将处理后的数据写回HDFS。现在,如果我的主演员崩溃,那么相应的子演员(工人)将崩溃,整个系统必须重新启动。

因此,如果有一个创建辅助主服务器的过程,只要主服务器以最短的恢复时间发生故障,该主服务器就会立即生效。我无法在此周围画出清晰的画面。

任何帮助将不胜感激。

由于

2 个答案:

答案 0 :(得分:1)

来自docs

  

/ user:卫报演员

     

可能与之互动最多的演员是所有人的父母   用户创建的演员,名为“/ user”的监护人。使用创建的Actor   system.actorOf()是这个actor的孩子。这意味着当这个   监护人终止,系统中的所有正常演员都将被关闭,   太。这也意味着这个监护人的监督策略决定了   顶级正常演员如何受到监督。自从Akka 2.1以来   可以使用设置进行配置   akka.actor.guardian-supervisor-strategy,它采用了   SupervisorStrategyConfigurator的完全限定类名。什么时候   监护人升级失败,根监护人的回应将是   终止监护人,实际上将关闭整个监护人   演员系统。

你的主人是你申请中的顶级演员,因此他是用户监护人的孩子,所以他会自动重启,因为对Guardian的监督是默认的:

  final val defaultDecider: Decider = {
    case _: ActorInitializationException ⇒ Stop
    case _: ActorKilledException         ⇒ Stop
    case _: DeathPactException           ⇒ Stop
    case _: Exception                    ⇒ Restart
  }

答案 1 :(得分:0)

或者你可以有一个主管,一个/用户监护人的孩子,可以重新启动它的孩子你所指的主人。如果有任何事情可以导致演员获得异常,那么应该由儿童演员完成。可以在其他操作中重新启动子actor