【Akka】
文章平均质量分 51
laiwenqiang
世间最痛苦的事,莫过于泯然于众人,默默无闻。
展开
-
Akka学习笔记01--简介和HelloWorld程序
Akka 是一个用 Scala 编写的库,用于简化编写容错的、高可伸缩性的 Java 和 Scala 的 Actor 模型应用。Actor模型并非什么新鲜事物,它由Carl Hewitt于上世纪70年代早期提出,目的是为了解决分布式编程中一系列的编程问题。其特点如下:系统中的所有事物都可以扮演一个Actor Actor之间完全独立 在收到消息时Actor所采取的所有动作都是并行的,在一原创 2014-12-22 15:26:54 · 1148 阅读 · 2 评论 -
Akka学习笔记07--TypedActor(有类型的Actor)
Akka 中的有类型 Actor 是 Active Objects 模式的一种实现,将异步的调用执行逻辑封装在一个方法内,在代码层面保证了的顺序执行思维。Active Objects 设计模式来自维基百科 Active Objects 。该设计模式包含了六种元素:代理:提供了面向客户端的带有公开方法的接口。接口:定义了到 active object 的请求方法(业务代码提供转载 2015-02-25 10:16:45 · 2740 阅读 · 0 评论 -
Akka学习笔记03--计算多个句子中每个单词出现的次数
***********(暂时粗略写下,用空扩充。。)用到的主要方法:1.tell,!。2.asssk,?。3.RoundRobinRouter,如代码段:valreduceActor =context.actorOf(Props[ReduceActor].withRouter( RoundRobinRouter(nrOfInstances = 5)), na原创 2015-02-03 23:55:49 · 814 阅读 · 0 评论 -
Akka源码分析--转载收藏
看akka源码的一些体会,没有列出源码来。akka代码主要包括两块:底层分发(akka.dispatch包)和上层模型(akka.actor包),从底层线程调度(dispatch)往上看起 函数式语言主要处理表达式求值,面向对象语言主要处理对象间消息发送消息。 1. 底层线程调度 Doug Lea: ForkJoinTaskForkJoinTask是用少数线程执行转载 2015-02-05 19:13:52 · 1528 阅读 · 0 评论 -
Akka学习笔记06--Actor的消息
向Actor发送消息,分为两种方式:tell,或者使用符号“!”:没有返回值。写法如下:actor ! msg//oractor.tell(msg)//oractor tell msg如果需要指定发送消息的actor,可以写成:actor.tell(msg, anotherActorRef)ask,或者使用符号“?”:有Future类型的返回值,而且原创 2015-02-05 23:02:29 · 694 阅读 · 0 评论 -
Akka学习笔记04--Actor生命周期
actor的生命周期大致上可分为下面三种阶段:•初始化和启动•通过执行特定的行为来接收和处理消息。•当接收到终止命令时,停止。此外,当actor的生命周期改变时,我们可以运用一些额外的可选方法(hooks)控制这些状态:•重写preStart()和postStop()方法:可以初始化/清空任何actor资源。•重写preRestart原创 2015-02-04 22:53:59 · 1000 阅读 · 0 评论 -
Akka学习笔记05--Actor的创建
显而易见,是通过actorOf()方法创建一个actor,但有两种途径:•运用actor system。如:val system = ActorSystem("MyActorSystem")val myActor = system.actorOf(Props(new MyActor(10)), name = "myActor")•在另外一个actor里调用context。如:原创 2015-02-04 23:42:03 · 1069 阅读 · 0 评论 -
Akka运行出错:AKKA: missing or invalid dependency detected while loading class file 'ActorSystem.class'
运行akka项目的时候,只添加了akka-actor_2.11-2.3.4.jar包,导致编译报错:Error:scalac: missing or invalid dependency detected while loading class file 'ActorSystem.class'.Could not access term config in value com.typesa原创 2015-02-01 19:29:40 · 2973 阅读 · 0 评论 -
Akka学习笔记02--PI值计算,采用多核处理器并行计算
我们所使用的算法叫“embarrassingly parallel” 意思是每个子任务是独立完成的,与其它子任务无关。这个算法可以高度并行化,所以非常适合使用actor模型。以下是我们所使用的算法的公式:在这个特定的算法中,有一个主actor将序列分割成段并发送给工作actor来进行计算。当工作actor完成自己的序列段的计算后将结果传给主actor,由主actor进行汇总。我原创 2014-12-22 17:32:51 · 2520 阅读 · 2 评论 -
Akka理论总结
AKKA 是一款基于actor模型实现的并发处理框架。基于事件驱动的并发处理模型,每一个actor拥有自己的属性和操作,这样就避免了通常情况下因为多个线程之间要共享属性(数据)而是用锁机制的处理。这种机制在scala,cloure 语言中应用的很好,将操作和属性放在一个独立的单元中进行处理,从而提高并发处理的能力。Akka的五大特性1)易于构建并行和分布式应用 (Simple Co原创 2015-10-24 14:37:42 · 3068 阅读 · 0 评论