大数据系列修炼-Scala课程105

大数据系列修炼-Scala课程105

核心内容:
1、解析Akka中的子Actor及其代码

1、解析Akka中的子Actor及其代码

1>在Akka当中,Actor是分层结构的,即任何一个Actor在Akka当中都属于具体的一个层次。
2>为什么需要使用子Actor,在什么时候需要创建子Actor?
一般有两种情况需要创建子Actor:
第一:若一个任务由多个子任务构成,这个时候一般要用子Actor
第二:若某个任务由父Actor执行的时候可能比较容易出错,即我们需要将某些具体的任务进行隔离,这个时候我们一般需要创建子Actor,
因为我们在使用子Actor的时候,若子Actor执行任务时崩溃了,我们可以通过对其监控的父Actor将其恢复。
3>通过Actor创建的子Actor,这个子Actor还可以将任务委派给下一级的子Actor,因为Actor本身是层级结构的。
4>基于Akka优良的架构,多Actor的执行在内存与CPU的消耗上要远小于线程。
5>每个Actor都有自己相应的路径。例如:
maser这个Actor,其路径为:akka://HelloAkka(ActorSystem的名称)/user(所有Actor的上一级目录)/master(Actor的名称)

实例程序1:

val aggregateActor = context.actorOf(Props[AggregateActor],"aggregate")
val reduceActor = context.actorOf(Props(new ReduceActor(aggregateActor)),name = "reduce")
val mapActor = context.actorOf(Props(new MapActor(reduceActor)),"map")

层级结构:MasterActor---->(AggregateActor、ReduceActor、MapActor)。

如有问题,欢迎留言指正!

你可能感兴趣的:(scala,大数据)