第105讲:解析Akka中的子Actor及其代码学习笔记

105讲:解析Akka中的子Actor及其代码学习笔记

akka中为什么会有子actor

因为akka中的actor是分层结构的,任何actorakka中都属于具体的层次。

为什么需要子actor,什么时候需要应该创建子actor

1当任务有多个子任务时

2actor由父acotr执行时可能 比较容易出错,将具体任务进行隔离。

因为使用子actor时,当子actor崩溃时,可通过监控actor进行恢复

当然通过actor创建了子actor,子actor可将任务委派给下一个actor,

可能有人认为创建actor会占用巨大资源,事实上,基于优良的架构,

创建acotr代价远远小于线程的创建。

 

val _system = ActorSystem("HelloAkka")    //通过actorSystem创建具体的actor的容器:HelloAkka

val master = _system.actorOf(Props[MasterActor],name="master"    //masterHelloAkka的子actor

println(master.path)

 

上述代码打印结果:

akka://HelloAkka/user/master

akka://是固定的协议,与http协议一样。

HelloAkka是创建的actorSystem的具体的名称

user是根目录下创建的所有actor的上一级目录,除user外还有system

可以看出akka是层级结构。

 

val aggregateActor:ActorRef = context.actorOf(Props[AggregateActor],name="aggregate")

val reduceActor:ActorRef = context.actorOf(Props(new ReduceActor(aggregateActor)),name="reduce")

val mapActor:ActorRef = context.actorOf(Props(new MapActor(reduceActor)),name="map") 

println(aggregateActor.path)

println(reduceActor.path)

println(mapActor.path)

 

打印结果:

akka://HelloAkka/user/master/aggregate

akka://HelloAkka/user/master/reduce

akka://HelloAkka/user/master/map

 

以上内容是从王家林老师DT大数据课程第105讲的学习笔记。
DT大数据微信公众账号:DT_Spark  

王家林老师QQ:1740415547 

王家林老师微信号:18610086859
DT大数据梦工厂1至110集scala的所有视频、PPT和代码在百度云盘的链接:http://pan.baidu.com/share/home?uk=4013289088#category/type=0&qq-pf-to=pcqq.group

 

第105讲视频网站地址:

土豆

http://www.tudou.com/programs/view/TSSli3i4eho/

56

http://www.56.com/u23/v_MTM4ODI3MDUy.html

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值