谁研究过actor-actor platformm-master

问题补充&&
本页链接:
猜你感兴趣scala(44)
我们来看一下Akka的一个简单的wordcount的案例架构设计
从图中我们可以看出,不同的行我们是交给不同的actor进行入理的,每行首先进行map操作,识别出每个单词,然后交给reduce步骤的actor,进行字数的统计。最后,将不同行的统计结果都传给一个统计actor进行最后的reduce操作,统计所有行的单词出现的次数。这是一个非常典型的案例。
那么Actor的设计是怎样的呢?我们看看最简单的版本。
从图中我们可以看出,一共需要4个actor。首先需要一个总调度的actor,也就是master actor。这将会把传入的每行字符串通过消息的方式,发送给第一步骤的map操作的actor,然后map actor将map后的结果返回给master actor。master actor接收到消息后,将mapdata发送给reduce操作的reduce actor,进行本行的单词统计操作,然后将统计内容返回给master actor。master actor接收到reduce data后,再将其发送给用于作最后统计工作的
aggregate actor。将全部行的reduce data全部发给Aggregate actor后,master actor会发送一个result消息给aggregate actor,通知其开始做最后的统计计算。最后,Aggregate actor将最后的统计结果返回给master actor。
分享下更多的scala资源吧:
百度云盘:
微云云盘:
360云盘:&&(提取码:13cd)
信息来源于 DT大数据梦工厂微信公众账号:DT_Spark
关注微信账号,获取更多关于scala学习内容
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:2005次
排名:千里之外
原创:41篇
(15)(22)(8)使用SBT开发Akka第一个案例源码解析消息、main入口、MasterActor - l_time - 博客园
随笔 - 42, 文章 - 0, 评论 - 12, 引用 - 0
学习了使用SBT开发Akka第一个案例源码解析消息、main入口、MasterActor,message中有mapdata文件,有对单词级数、单词切分、local单词统计的类;应用ActorSystem 创建整个AKKa的框架,创建具体的MasterActor,应用!发信息;MasterActor创建 aggregateActor, reduceActor, mapActor。
案例如下:
package akka.dt.app.scala.messages
import java.util.{HashMap, ArrayList}
class Word(val word:String, Val count: Integer)
case class Result
class MapData(val dataList: ArrayList[word])
class ReduceData(val reduceDataMap: HashMap[string,Integer])
def main(args:Array[String]){
& val _system=ActorSystem("HellowAkka")
&&val master = _system.actorOf(ProPs[MasterActor], name="master")
& master ! &&"My name is Rocky"
& master !&& "Today, I'm going to read a news article for you."
& master !&& "I hope you'll like it."
& Thread.sleep(500)
& master ! new Result
& Thread.sleep(500)
& _system.shutdown
class MasterActor extend Actor {
& val aggregoteActor: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")
&& def receive: Receive={
&& case message:String=&
&&&& mapActor! message
& &case message:Result =&
&&& aggregateActor ! message
& &case _=&
&DT大数据梦工厂Scala视频于今日更新突破100集!风雨同舟,感谢各位大数据爱好者的持续学习和支持!(DT大数据梦工厂1至100集scala的所有视频、PPT和代码在百度云盘的链接:)

我要回帖

更多关于 akka actor 的文章

 

随机推荐