Actor模型开发库 Akka

Actor模型开发库 Akka

Apache
Scala 查看源码»
跨平台
2011-02-17
红薯

Akka 是一个用 Scala 编写的库,用于简化编写容错的、高可伸缩性的 Java 和 Scala 的 Actor 模型应用。

Actor模型并非什么新鲜事物,它由Carl Hewitt于上世纪70年代早期提出,目的是为了解决分布式编程中一系列的编程问题。其特点如下:

  • 系统中的所有事物都可以扮演一个Actor

  • Actor之间完全独立

  • 在收到消息时Actor所采取的所有动作都是并行的,在一个方法中的动作没有明确的顺序

  • Actor由标识和当前行为描述

  • Actor可能被分成原始(primitive)和非原始(non primitive)类别

  • 非原始Actor有

    • 由一个邮件地址表示的标识

    • 当前行为由一组知识(acquaintances)(实例变量或本地状态)和定义Actor在收到消息时将采取的动作组成

  • 消息传递是非阻塞和异步的,其机制是邮件队列(mail-queue)

  • 所有消息发送都是并行的

Java 代码:

public class Greeting implements Serializable {
  public final String who;
  public Greeting(String who) { this.who = who; }
}
 
public class GreetingActor extends UntypedActor {
  LoggingAdapter log = Logging.getLogger(getContext().system(), this);
 
  public void onReceive(Object message) throws Exception {
    if (message instanceof Greeting)
      log.info("Hello " + ((Greeting) message).who);
  }
}
 
ActorSystem system = ActorSystem.create("MySystem");
ActorRef greeter = system.actorOf(Props.create(GreetingActor.class), "greeter");
greeter.tell(new Greeting("Charlie Parker"), ActorRef.noSender());

Scala 代码:

case class Greeting(who: String)
 
class GreetingActor extends Actor with ActorLogging {
  def receive = {
    case Greeting(who) ⇒ log.info("Hello " + who)
  }
}
 
val system = ActorSystem("MySystem")
val greeter = system.actorOf(Props[GreetingActor], name = "greeter")
greeter ! Greeting("Charlie Parker")


在线 API doc :http://tool.oschina.net/apidocs/apidoc?api=akka2.0.2%2Fapi

的码云指数为
超过 的项目
加载中

评论(5)

_凤求凰_
_凤求凰_
谁用过这货?咋样?
HAM-2015
HAM-2015
C++的Actor并发框架(基于stackful/stackless) https://git.oschina.net/hamasm/cpp-actor-framework
王振威
王振威
应网友需求,osctools今天新增Nginx中文文档、ScalaTest、#liftweb#、Akka 文档,红薯正在上传,随后就可以看到了,同学们,有啥需要的可以提要求或者谁有好的文档可以直接发给我哦。
ForEleven
ForEleven
刚刚开源了一个基于 HTML5 的WebSocket 项目,用了Tomcat7.0.42作为服务器,后台消息的处理主要用了Akka,Osc Git地址:https://git.oschina.net/for-1988/oschart ,说明中有演示地址。。。昵称暂时不要用中文,有乱码问题 :-(
Ryan-瑞恩
Ryan-瑞恩
Mark 一个,,,,,, Akka

Akka 2.6.0-M2 发布,Scala 编写的 Actor 模型开发库

Akka 2.6 第二个开发版的里程碑版本已发布。 Akka 2.6 二进制向前兼容 2.5 版本,这份文档列出了一些例外情况。如果从 2.5 升级到 2.6,可能需要进行一些配置更改,请首先阅读迁移指南。 另外...

05/26 07:28

Akka 2.5.17 发布,Scala 编写的 Actor 模型开发库

Akka 2.5.17 发布了,这是 Akka 2.5 系列的最新补丁版本。2.5.17 中包括以下值得关注的改进和 bug 修复: 删除 ORSet[ActorRef] 的滚动升级序列化 #25336。其中包含滚动升级的一份指南。 不会...

2018/09/28 05:37

Akka 2.5.16 发布,Scala 编写的 Actor 模型开发库

Akka 2.5.16 发布了,这是 Akka 2.5 系列的最新补丁版本。它包含一个重要的安全修复程序,该漏洞会影响 Akka 系统,该系统使用带有 TLS 的 Akka Remoting/Cluster,并将 TLS 配置 random-num...

2018/08/30 07:15

Akka 2.5.15 发布,Scala 编写的 Actor 模型开发库

Akka 2.5.15 发布了,这依然是 Akka 2.5 系列的一个新的补丁版本。2.5.15 中值得注意的改进和错误修复包括: 支持从 2.5.9 或更早版本的集群节点加入 2.5.15 的集群节点 #25491 改进文档中 ...

2018/08/26 07:33

Akka 2.5.13 发布,Actor 模型开发库

Akka 2.5.13 发布了,目前暂时没有发现相关更新信息,您可以留意官方更新网页了解详情。 Akka 是一个用 Scala 编写的库,用于简化编写容错的、高可伸缩性的 Java 和 Scala 的 Actor 模型应用...

2018/05/31 07:51

Actor 模型开发库 Akka 2.5.11 发布,修复回归错误

Akka 2.5.11 已发布,这是 Akka 2.5 系列的一个补丁版本。该版本修复了 Akka 2.5.10 中引入的回归错误,这个回归错误会导致 Akka Cluster 不能从 2.5.9 升级到 2.5.10。 自 2.5.10 以来,共关...

2018/03/04 06:55

Actor 模型开发库 Akka 2.5.10 发布,引入新功能

Akka 2.5.10 已发布,该版本包含了一些新的功能: 使用 TCP 和 TLS 的干线传输 StreamRefs - 网络上的响应流 (click for 5min video) 滚动更新配置验证 其他值得关注的改进和 bug 修复: Re...

2018/02/25 06:57

Actor 模型开发库 Akka 2.5.9 发布,2.4.x 生命周期结束

Akka 2.5.9 已发布,这是一个新的补丁版本,包含了一些小的修复,值得关注的 bug 修复有: 为 Artery 的 Aeron 升级至 1.7.0 #24169 集群分片的优化 #24064 和 #24191 用于 Address 的新的顶...

2018/01/13 07:32

Akka v2.5.6 发布,Actor 模型开发库

Akka v2.5.6 已发布,Akka 是一个用 Scala 编写的库,用于简化编写容错的、高可伸缩性的 Java 和 Scala 的 Actor 模型应用。 除了正常的维护和改进,该版本还增加了很多新特性,主要如下: ...

2017/09/30 07:57

Akka 2.5.4 和 2.4.20 发布,Actor 模型开发库

Akka 2.5.4 和 2.4.20 已发布,Akka 是一个用 Scala 编写的库,用于简化编写容错的、高可伸缩性的 Java 和 Scala 的 Actor 模型应用。 由于 Camel 的安全漏洞,akka-camel 的用户建议将 Came...

2017/08/11 06:52

没有更多内容

加载失败,请刷新页面

17
回答
.io域名貌似流行开了。

http://vertx.io/ http://akka.io 不去申请一个都out了。

2012/05/14 09:59
2
回答
如何保证在ActorSystem关闭的时候,所有的ActorRef任务都能执行完?

做过一个实验,把要处理的任务sleep 100ms,然后循环tell10次,也就是onReceiver那里会比较耗时,然后循环tell完之后。立即关闭Ac...

2017/09/10 01:09
2
回答
应届毕业生如何学习scala和akka

应届毕业生,有过三个月的java web实习经历。因新公司的开发需要,得学习scala和akka并用于后台开发,但学了一个月,感觉还是很难,很多不懂,看项...

2017/06/27 12:00
4
回答
Java对集合框架、多线程库、文件&网络IO要求到啥程度?

请问 Java对集合框架、多线程库、文件&网络IO要求到啥程度?

2016/12/30 15:36
5
回答
如何使用AKKA实现下面的流程?
羊八井 的回答 2015/12/27 20:53
最佳答案
这个实现很简单的,看我写的介绍: http://my.oschina.net/yangbajing/blog/538282 http://my.oschina.net/yangbajing/blog/535652
2
回答
Scala中的actor和Akka中的actor有什么区别?

Scala中的actor和Akka中的actor有什么区别?

2013/05/14 12:52
1
回答
osgi中使用akka的问题 No configuration setting found for key 'akka'.

在应用的bundle中jar的下面放了application.conf文件。 在bundleActivator中使用ActorSystem system ...

2015/10/17 14:45
5
回答
请用一句话概括scala、akka、kafka、hadoop、团队

1:一句话概括scala的核心优势? 2:一句话概括Akka的核心优势? 3:一句话概括Kafka的核心优势? 4:一句话概括hadoop的核心优势? 5...

2015/09/15 13:46
4
回答
有什么适合初学者学习的Akka Actor项目。

现在看到akka actor项目,感觉比较好,想学习一下。但我想有一个使用这个框架的开源小项目,学习一下可能更快一些,不知道有没有这样的开源项目。

2015/07/27 17:06
1
回答
我想用AKKA建立一个跨行业通用的事件响应和处理平台
ForEleven 的回答 2015/06/15 12:46
最佳答案
actor的编程模型用于实时事件处理还是蛮好的。 推荐可以使用finagle+akka,finagle借助thrift来提供跨平台的接口服务

没有更多内容

加载失败,请刷新页面

akka http的hello world

centos 7 官网下载jdk 1.8和scala 2.11.8,rpm直接安装。 sbt 0.13.11 tgz的直接解压。ln建立软连接。 新建目录helloakka/project helloakka下新建bulid.sbt,内容如下: name := "helloakka...

2016/06/26 17:13
41
0
Hello Akka

从其它的网上教程中,我们很容易找到各种 Akka 相关的教程。但是可能是因为自己太笨,都没看明白。 于是自己写下这样一篇笔记,作以记录。

2016/05/12 14:11
241
2
What are the differences between Akka and Netty?

What are the differences between Akka and Netty besides their choice of language (Scala vs Java)?...

2015/12/24 11:37
431
0
Akka in Schedulerx2.0

1. 前言 Schedulerx2.0是阿里中间件自研的基于akka架构的新一代分布式任务调度平台,提供定时、任务编排、分布式跑批等功能,具有高可靠、海量任务、秒级调度等能力。 本篇文章以Schedulerx2...

07/22 10:53
96
0
Akka Actor 模型云计算架构以及 Remote Actor的简单示例

Akka是一个用Scala编写的开源事件驱动中间件框架库,用于简化编写容错的、高可伸缩性的Java和Scala 的Actor 模型应用。用于构建高性能、高可靠以及分布式的Java和Scala应用程序,再加上Play2...

2014/08/04 23:23
1K
1
akka入门 (1):akka简介

这个akka入门系列大量参考了akka文档。主要是翻译+自己的一些理解。这里对akka文档吐一下槽,它的文档初看上去感觉挺详细的。但是很多示例代码都是片段,对初学者来说甚至都无法运行起来,所...

2013/07/02 16:23
1K
1
使用Akka构建集群(一)

概述 Akka提供的非常吸引人的特性之一就是轻松构建自定义集群,这也是我要选择Akka的最基本原因之一。如果你不想敲太多代码,也可以通过简单的配置构建一个非常简单的集群。本文为说明Akka集...

2018/10/27 12:05
36
0
Akka in Schedulerx2.0

1. 前言 Schedulerx2.0是阿里中间件自研的基于akka架构的新一代分布式任务调度平台,提供定时、任务编排、分布式跑批等功能,具有高可靠、海量任务、秒级调度等能力。 本篇文章以Schedulerx2...

07/22 12:22
13
0
Akka路由_RoundRobinRoutingLogic

Akka路由_RoundRobinRoutingLogic

2015/01/20 16:19
350
0
Akka框架基本要点介绍

Akka基于Actor模型,提供了一个用于构建可扩展的(Scalable)、弹性的(Resilient)、快速响应的(Responsive)应用程序的平台。本文基本上是基于Akka的官方文档(版本是2.3.12),通过自己的...

2015/11/28 22:06
170
0

没有更多内容

加载失败,请刷新页面

返回顶部
顶部