文档章节

何为Akka Actor

jinlei_du
 jinlei_du
发布于 2017/02/24 16:24
字数 610
阅读 5
收藏 0

#何为AKKA Actor

Akka Actor是一个包含状态,行为,邮箱地址,子Actor以及监督机制的容器,所有这些都被封装在Actor引用之后。更需要注意的一个概念是Actor有一个显式的生命流程,没有被引用Actor 不会自动被自动析构或者释放,当你创建了一个Actor时,你应确保最后正确的释放它。同时,这给了你一个契机来决定如何释放Actor相关的资源。

#何为 Actor 模型 在计算机科学中,Actor模型是1973提出的关于并行计算的数据模型。Actor可以根据收到的message来做逻辑决策,创建更多的actor,发送更多消息或者决定如何处理下一条消息。Actor可以改变自己的私有状态,但必须是通过通过消息。

Actor模型灵感来自物理,包括广义相对论和量子力学。它也受到编程语言Lisp,Smalltalk的早期版本以及权能管理模型和分组交换网络的影响。它的发展是”高度并行计算机的前景,由几十,几百或甚至上千个独立的微处理器组成,每个都有自己的本地存储器和通信处理器,通过高性能通信网络进行通信”

一切是都是Actor是Actor模型的基本概念,类似于一切是对象之于面向对象领域。 Actor是计算的实体用于响应它接收的消息。他可以同时:

  • 向其他Actor发送消息
  • 创建新的Actor
  • 指定要用于其接收的下一个消息的行为 上述行为没有假定的顺序,可以并行执行。

分离将发送者和发送的消息是Actor模型的有点,通过消息传递来实现了异步通信和结构控制。

消息的收件人由地址标识,有时称为“邮寄地址”。因此,Actor只能通过“邮寄地址”与其他Actor通信。Actor可以从它接收的消息中获得这些“邮寄地址” ,甚至它自己创建的子Actor发送的消息。

Actor模型的特征在于在Actor之间固有的并发性,动态的创建,消息中包含的Actor地址,以及仅通过异步消息来交互(对消息到达的顺序并无限制)

© 著作权归作者所有

共有 人打赏支持
jinlei_du
粉丝 0
博文 2
码字总数 1031
作品 0
闵行
程序员
私信 提问
如何保证在ActorSystem关闭的时候,所有的ActorRef任务都能执行完?

做过一个实验,把要处理的任务sleep 100ms,然后循环tell10次,也就是onReceiver那里会比较耗时,然后循环tell完之后。立即关闭ActorSystem,会报错,只执行了第一次的任务,后来的几次都没执...

ChangeZ
2017/09/10
32
0
spark shell 运行异常

Association with remote system [akka.tcp://sparkMaster@master :7077] has failed, address is now gated for [5000] ms. Reason: [Association failed with [akka.tcp://sparkMaster@mas......

sca7
2016/08/26
408
2
java.lang.NoSuchMethodError: scala.collection.immutable.HashSet$.empty()Lscala/collection/immutable/HashSet;

" java.lang.NoSuchMethodError: scala.collection.immutable.HashSet$.empty()Lscala/collection/immutable/HashSet; at akka.actor.ActorCell$.(ActorCell.scala:336) at akka.actor.Actor......

sca7
2017/10/18
56
1
akka的项目在jetty中无法启动

命令 sbt jetty-run log如下 14:46:05.843 [main] INFO akka.servlet.AkkaLoader - Shutting down Akka... 14:46:05.843 [main] INFO akka.servlet.Initializer$$anon$1 - Shutting down Rem......

jingshishengxu
2011/06/01
720
1
Akka路由_RoundRobinRoutingLogic

Akka路由_RoundRobinRoutingLogic 使用Round Robin算法的Router,代码中有注释,基本和上篇文章中的代码一样 http://my.oschina.net/xinxingegeya/blog/369721, 具体如下,关于Round Robin...

秋风醉了
2015/01/20
0
0

没有更多内容

加载失败,请刷新页面

加载更多

JAVA设计模式之模板方法模式和建造者模式

一、前期回顾 上一篇《Java 设计模式之工厂方法模式与抽象工厂模式》介绍了三种工厂模式,分别是工厂方法模式,简单工厂方法模式,抽象工厂模式,文中详细根据实际场景介绍了三种模式的定义,...

木木匠
29分钟前
2
0
C中的宏的使用(宏嵌套/宏展开/可变参数宏)

基本原则: 在展开当前宏函数时,如果形参有#或##则不进行宏参数的展开,否则先展开宏参数,再展开当前宏。 #是在定义两边加上双引号 #define _TOSTR(s) #sprintf(_TOSTR(test ABC))pr...

SamXIAO
59分钟前
2
0
SpringBoot 整合异步调用方法

1. 在 SpringBoot 主类上使用 @EnableAsync 注解,开启异步调用功能 package com.codingos.springbootdemo;import org.springframework.boot.SpringApplication;import org.springfra......

北漂的我
今天
1
0
0015-如何使用Sentry管理Hive外部表权限

1.文档编写目的 本文档主要讲述如何使用Sentry对Hive外部表权限管理,并基于以下假设: 1.操作系统版本:RedHat6.5 2.CM版本:CM 5.11.1 3.集群已启用Kerberos和Sentry 4.采用具有sudo权限的...

Hadoop实操
今天
3
0
边缘计算与数据中心的发展趋势

导读 Gartner研究表明,人工智能、物联网和5G助力下一代商业创新,由此产生大量数据,2020年前企业将使用超过75亿台联网设备。 在几乎每个方面,社会的节奏都正变得更快。我们希望客户服务问...

问题终结者
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部