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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值