第105讲:解析Akka中的子Actor及其代码学习笔记
来源:互联网 发布:java bigdecimal加 号 编辑:程序博客网 时间:2024/05/18 22:42
第105讲:解析Akka中的子Actor及其代码学习笔记
akka中为什么会有子actor
因为akka中的actor是分层结构的,任何actor在akka中都属于具体的层次。
为什么需要子actor,什么时候需要应该创建子actor
1当任务有多个子任务时
2某actor由父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" //master是HelloAkka的子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
- 第105讲:解析Akka中的子Actor及其代码学习笔记
- 第102讲:通过案例解析Akka中的Actor运行机制以及Actor的生命周期学习笔记
- 第103讲:通过案例解析Akka中的Actor的定义和创建学习笔记
- 第104讲:通过案例解析Akka中的Actor的不同类型的Constructor学习笔记
- 第110讲:Akka中的Actor的Monitoring初步解析学习笔记
- 第108讲:Akka中的Actor消息的处理、消息回复、消息转发学习笔记
- 第109讲:Akka中的Actor异步和同步停止方式实战详解学习笔记
- 第111讲:Akka中的Actor中用become和unbecome动态切换receive的具体处理逻辑实战学习笔记
- 第67讲:Scala并发编程匿名Actor、消息传递、偏函数实战解析及其在Spark源码中的应用解析学习笔记
- 第106讲:解析Akka中的消息的不同发送方式方式详解学习笔记
- 第107讲:Akka中的Future使用代码实战详解学习笔记
- 第90讲:基于Scala的Actor之上的分布式并发消息驱动框架Akka初体验学习笔记
- 第43讲:Scala中类型变量Bounds代码实战及其在Spark中的应用源码解析学习笔记
- 第44讲:Scala中View Bounds代码实战及其在Spark中的应用源码解析学习笔记
- 第45讲:Scala中Context Bounds代码实战及其在Spark中的应用源码解析学习笔记
- 第46讲:ClassTag 、Manifest、ClassManifest、TypeTag代码实战及其在Spark中的应用源码解析学习笔记
- 第47讲:Scala多重界定代码实战及其在Spark中的应用源码解析学习笔记
- 第48讲:Scala类型约束代码实战及其在Spark中的应用源码解析学习笔记
- 安卓分享之神一样的分享代码
- POJ- 2367- Genealogical tree【拓扑排序】
- java面试题八 传值传引用
- Python __setitem__()、__getitem__()、__delitem__() (十一)
- html5基础
- 第105讲:解析Akka中的子Actor及其代码学习笔记
- 算法:程序设计之并查集
- Codeforces#321 (Div. 2) C. Kefa and Park(dfs)
- Hive定义、Hive与HBase关系、Hive与RDBMS的关系、数据库与数据仓库的区别
- fpga设计思想(一):三种建模方式
- 第二讲
- 【实战】智能电视视频通话
- 黑马程序员————JAVA语言基础
- URI和URL的区别