您的位置:首页 > 编程语言

第95讲:Akka第一个案例动手实战MasterActor代码详解学习笔记

2015-09-08 22:34 447 查看
第95讲:Akka第一个案例动手实战MasterActor代码详解学习笔记

1.MasterActor的作用

2.MasterActor代码实现详解

MasterActor的作用:

1.实例化MapActor/ReduceActor/AggregateActor

2.把MapActor要处理的内容发给MapActor

public class MasterActor extends UntypedActor {

private ActorRef aggregaterActor = getContext().actorOf(

//MasterActor本身也是一个actor,是不能创建actor的,

//所以需要gerContext的方式创建actor。

//这里只是一个aggregateActor的一个引用。

//创建actor实例是由akka系统创建的。

//MasterActor在这里拿到的只是一个句柄引用。所以类型是ActorRef

//getContext()取得的是一个actorContext

new Props(AggregateActor.class), "aggregate");

private ActorRef reduceActor = getContext().actorOf(

new Props((UntypeActorFactory create() {

public UntypedActor create(){

return new ReduceActor(aggregateActor);

}

}),"rduce");

private ActorRef mapActor = get Context().actorOf(

new Props(new UntypedActorFactory(){

public UntypedActor create(){

return new MapActor(reduceActor);

}

}),"map");

@override

public void onReceive(Object message) throws Exception{

if (message instanceof String) {

mapActor.tell(message);

//如果收到的是String,就交给mapActor发消息,tell是发完即忘。

} else if (message instanceof Result) {

aggregateActor.tell(message);

//如果收到的是一个Result,就交给aggregateActor发消息,

} else

unhandled(message);

}

}

MasterActor收到的消息是由应用程序入口发送来的消息(HelloAkka)

以上内容是从王家林老师DT大数据课程第95讲的学习笔记。

DT大数据微信公众账号:DT_Spark

王家林老师QQ:1740415547

王家林老师微信号:18610086859
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: