AKKA 是一款基于actor模型实现的 并发处理框架。基于事件驱动的并发处理模型,每一个actor拥有自己的属性和操作,这样就避免了通常情况下因为多个线程之间要共享属性(数据)而是用锁机制的处理。这种机制在scala,cloure 语言中应用的很好,将操作和属性放在一个独立的单元中进行处理,从而提高并发处理的能力。
下面用一个最简单的helloword作为进入akka世界的开始。
功能描述:
实现通过一个actior发送消息到另一个actor然后将处理结果返回,感觉很简单类似两个类的方法调用,但是这里实际上的处理时异步的并非同步的调用处理,这里神奇的地方就在于AKKA的内部机制了后续再做深入研究。
HelloWorld 类
- package com.huawei.akka;
- import akka.actor.Props;
- import akka.actor.UntypedActor;
- import akka.actor.ActorRef;
- public class HelloWorld extends UntypedActor {
- @Override
- public void preStart() {
- // create the greeter actor
- final ActorRef greeter =
- getContext().actorOf(Props.create(Greeter.class), "greeter");//创建greeter actor实例
- // tell it to perform the greeting
- greeter.tell(Greeter.Msg.GREET, getSelf());//通过tell方法给greeter actor 发送一条消息
- }
- @Override
- public void onReceive(Object msg) {
- if (msg == Greeter.Msg.DONE) {
- // when the greeter is done, stop this actor and with it the application
- getContext().stop(getSelf());
- } else unhandled(msg);
- }
- }
Greeter类
- package com.huawei.akka;
- import akka.actor.UntypedActor;
- public class Greeter extends UntypedActor {
- public static enum Msg {
- GREET, DONE;
- }
- @Override
- public void onReceive(Object msg) {
- if (msg == Msg.GREET) {
- System.out.println("Hello World!");
- getSender().tell(Msg.DONE, getSelf());
- } else unhandled(msg);
- }
- }
运行HelloWorld类,akka提供了一个主actor类,可以通过这个类直接执行以上的方法,在eclipse中在helloworld类中点击 open run dailoge,然后在Main.class 选项中输入akka.Main,然后选择arguments 在program arguments 中输入 com.huawei.akka.HelloWorld,点击 apply 然后运行结果如下:
- Hello World!
- [INFO] [09/15/2013 15:06:33.125] [Main-akka.actor.default-dispatcher-5] [akka://Main/user/app-terminator] application supervisor has terminated, shutting down
从运行结果可以看出,HelloWorld actor正确的调用了 Greeter actor 因为输出了 Hello World!从Infor日志可以看出 HelloWorld actor 正常接收到了 Greeter actor 的返回停止了当前actor。
http://www.javaworld.com/article/2078775/scripting-jvm-languages/open-source-java-projects-akka.html
相关推荐
Akka是一个用于构建分布式、高并发、容错性应用程序的开源库和运行时环境,它建立在Actor模型上。在2014年版本的《Akka实战》一书中,作者深入讲解了Akka的核心概念、设计思想以及如何利用Akka构建实际的应用程序。 ...
Akka is a distributed computing toolkit that enables developers to build correct concurrent and distributed applications using Java and Scala with ease, applications that scale across servers and ...
Akka.NET是一个强大的工具包,它为.NET开发者提供了一种实现高性能、高可扩展性和容错性的分布式计算的途径。这个框架受到了Scala平台上的Akka的启发,将Actor模型引入了.NET世界。在这个"**c#分布式框架akka范例**...
Akka 是一个强大的工具包和框架,主要用于构建高度并发、分布式和反应式的应用程序,它基于actor模型。在Java中,Akka可以用来实现TCP远程调用,这使得不同系统之间能够通过网络进行通信。下面我们将深入探讨如何...
Akka 是一个强大的开源工具,主要用于构建高度并发、分布式和反应式的应用程序,主要在Java和Scala语言环境下使用。它的核心设计理念是Actor模型,这使得它能够处理大量的并发操作,同时保持系统的可扩展性和容错性...
Akka in Action shows you how to build message-oriented systems with Akka. This comprehensive, hands-on tutorial introduces each concept with a working example. You’ll start with the big picture of ...
Akka是一个基于Scala语言的开发框架,由Jonas Boner主持开发,旨在为Java程序员提供一套强大的并发工具和抽象模型。由于Akka基于JVM,因此它也兼容包括Java在内的其他运行在JVM上的语言。Akka的核心思想是利用Actor...
### Akka 学习入门实践知识点详解 #### 一、Akka 概述 - **定义**:Akka 是一个用于构建高度并发、分布式、容错性应用的工具包,适用于 Java 和 Scala 开发者。它基于 Actor 模型,支持响应式编程范式。 - **目标**...
akka-kryo-serialization, 基于Kryo的Akka序列化 akka-kryo-serialization-- Scala 和Akka基于kryo的序列化程序这个库为 Scala 和Akka提供定制的基于kryo的序列化程序。 它可以用于更高效的akka远程处理。它还可以...
Akka是一个基于Actor模型的高性能、容错的Java和Scala库,由Lightbend公司(原Typesafe)开发。在标题“akka_2.12-2.4.18.zip”中,我们看到的是Akka的一个特定版本,2.4.18,它针对Scala 2.12这个JVM语言的版本进行...
Akka是一个用Scala和Java编写的开源工具包和运行时,用于构建并发、分布式和容错的事件驱动应用程序。Akka基于Actor模型,这是一种并发模型,可以在多核CPU系统上有效地进行扩展。在给出的文件中,提到了Akka V2.3.6...
《Learning Akka》这本书是关于Akka框架的深入学习指南,它主要面向那些希望掌握分布式系统设计和并行计算技术的开发人员。Akka是一个用Scala语言构建的高性能、容错的工具包,广泛应用于Java和Scala环境中。本书...
**Akka.NET 分布式数据传输详解** Akka.NET 是一个强大的开源框架,它为构建高可用性、高性能和反应式的应用程序提供了丰富的工具。在分布式系统中,数据传输是核心功能之一,Akka.NET 提供了高效且可靠的手段来...
Akka之所以使用Scala语言编写,是因为Scala的强大特性和其与JVM的无缝集成,使得Akka能够充分利用JVM的优势并发挥出Scala的函数式编程和面向对象编程的双重优势。同时,Akka也提供了对Java的全面支持,开发者可以...
如何使用 Akka 来构建具备高容错性、可以横向扩展的分布式网络应用程序。Akka 是一 个强大的工具集,提供了很多选项,可以对在本地机器上处理或网络远程机器上处理的 某项工作进行抽象封装,使之对开发者不可见。...
- **Akka**: 是一个基于Actor模型的并发框架,由Typesafe Inc.开发。它为构建高度并发、分布式、容错的应用程序提供了强大的工具。 - **Scala**: 是一种多范式编程语言,结合了面向对象和函数式的特性,广泛应用于大...
Akka是一个用Scala语言开发的高性能、分布式计算框架,它主要在Java和Scala环境中使用。Akka库的设计理念是提供一种高效、容错且可扩展的解决方案,用于构建高度并发、分布式以及反应式的应用程序。标题中的"Akka...
### Akka Java 文档知识点概览 #### 一、引言 ##### 1.1 Akka 是什么? Akka 是一个面向并发、分布式系统开发的工具包,它基于 Actor 模型并支持容错机制。Akka 能够在 JVM(Java Virtual Machine)上构建高度并发...