频道栏目
首页 > 程序开发 > 软件开发 > 其他 > 正文
大数据系列修炼:Scala课程95
2016-10-18 09:13:00      个评论    来源:数据分析玩家  
收藏   我要投稿

核心内容:

1、Akka第一个案例动手实战MasterActor代码详解


1、Akka第一个案例动手实战MasterActor代码详解

1>MasterActor主要的两个作用:
第一:将MapActor需要处理的内容字符串信息发送给MapActor;
第二:实例化MapActor、ReduceActor、AggregateActor,但是因为MasterActor自身也是Actor,所以不能直接创建
这三个Actor,这三个Actor实际上是由Akka系统创建的。
2>UntypedActor通过其onReceive方法接受其它Actor发送过来的消息信息。


相应代码:
MasterActor代码:

package akka.dt.app.java.actors;

import akka.actor.ActorRef;
import akka.actor.Props;
import akka.actor.UntypedActor;
import akka.actor.UntypedActorFactory;
import akka.dt.app.java.messages.Result;

public class MasterActor extends UntypedActor
{
    private ActorRef aggregateActor = getContext().actorOf(
            new Props(AggregateActor.class),"aggregate");
    private ActorRef reduceActor = getContext().actorOf(
            new Props(new UntypedActorFactory() {
                public UntypedActor create(){
                    return new ReduceActor(aggregateActor);
                }
            }),"reduce");
    private ActorRef mapActor    = getContext().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);
        }else if(message instanceof Result){
            aggregateActor.tell(message);
        }else
            unhandled(message);
    }
}

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

点击复制链接 与好友分享!回本站首页
上一篇:大数据系列修炼:Scala课程94
下一篇:UML与软件工程
相关文章
图文推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站