Akka是开源的,可以通过Apache 2许可获得。可以从 http://akka.io/downloads/ 下载。
Akka实现了独特的混合模型
Actors
Actors为你提供:
对并发/并行程序的简单的、高级别的抽象。
异步、非阻塞、高性能的事件驱动编程模型。
非常轻量的事件驱动处理(1G内存可容纳约270万个actors)。
容错性
使用“let-it-crash”语义和监管者树形结构来实现容错。非常适合编写永不停机、自愈合的高容错系统。监管者树形结构可以跨多个JVM来提供真正的高容错系统。
位置透明性
Akka的所有元素都为分布式环境而设计:所有actor都仅通过发送消息进行互操作,所有操作都是异步的。
事务性actors
事务性Actor是actor与STM(Software Transactional Memory)的组合。它使你能够使用自动重试和回滚来组合出原子消息流。
Scala 和 Java APIs
Akka同时提供 Scala API 和 Java API.
Akka可以以两种不同的方式来使用
以库的形式:在web应用中使用,放到 WEB-INF/lib 中或者作为一个普通的Jar包放进classpath。
以微内核的形式:你可以将应用放进一个独立的内核。
Cloudy Akka 如何了?
Akka的商业支持早先被叫作Cloudy Akka. 它包括两部分:
Akka的集群支持
监控和管理(早先称为Atmos)
Cloudy Akka已经停止了。集群支持已经被移进了Akka的开源版本中(即将到来的Akka 2.1),而监控和管理(Atmos)现在被重新命名为Typesafe控制台,是Typesafe Stack(详见下文)商业合约的一部分。
Typesafe Stack
Akka现在是 Typesafe Stack 的一部分。
Typesafe stack是一个让开发者更容易地构建可扩展软件应用的现代软件平台。它在一个简单的包里组合了Scala语言、Akka、Play! Web框架和其它鲁棒的开发工具,能够与现有的Java基础设施无缝集成。Typesafe Stack是完全开源的。
Typesafe控制台
在Typesafe Stack的顶端,我们还有名叫Typesafe控制台的商业产品,提供以下功能:
漂亮的Web界面,实时展示系统内部状态
通过Dashboard、JMX和REST进行管理
组件间及远程节点间消息的跟踪
实时统计
开销非常小的监控程序(生产系统中应该保持运行)
单节点上统计与日志信息的合并
统计数据的存储,以备后续处理
安装升级及滚动升级
Akka平台提供哪些有竞争力的功能?
Akka提供可扩展的实时事务处理,是一个运行时与编程模型一致的系统,为以下目标设计:
垂直扩展(并发)
水平扩展(远程调用)
高容错
在Akka的世界里,只有一个内容需要学习和管理,具有高内聚和高一致的语义。
Akka是一种高度可扩展的软件,这不仅仅表现在性能方面,也表现在它所适用的应用的大小。Akka的核心,Akka-actor是非常小的,可以非常方便地放进你的应用中,提供你需要的异步无锁并行功能,不会有任何困扰。
你可以任意选择Akka的某些部分集成到你的应用中,也可以使用完整的包——Akka 微内核,它是一个独立的容器,可以直接部署你的Akka应用。随着CPU核数越来越多,即使你只使用一台电脑,Akka也可作为一种提供卓越性能的选择。 Akka还同时提供多种并发范型,允许用户选择正确的工具来完成工作。
什么场景下特别适合使用Akka?
我们看到Akka被成功运用在众多行业的众多大企业,从投资业到商业银行、从零售业到社会媒体、仿真、游戏和、汽车和交通系统、数据分析等等等等。任何需要高吞吐率和低延迟的系统都是使用Akka的候选。
Actor使你能够进行服务失败管理(监管者),负载管理(缓和策略、超时和隔离),水平和垂直方向上的可扩展性(增加cpu核数和/或增加更多的机器)管理。
下面的链接中有一些Akka用户关于他们如何使用Akka的描述:
http://stackoverflow.com/questions/4493001/good-use-case-for-akka
所有以上这些都在这个Apache2许可的开源软件中。
以下是Akka被部署到生产环境中的领域
事务处理 (在线游戏,金融/银行业,贸易,统计,,社会媒体,电信):垂直扩展,水平扩展,容错/高可用性
服务后端 (任何行业,任何应用):提供REST, SOAP, Cometd, WebSockets 等服务 作为消息总线/集成层 垂直扩展,水平扩展,容错/高可用性
并发/并行 (任何应用):运行正确,方便使用,只需要将jar包添加到现有的JVM项目中(使用Scala,java, Groovy或jruby)
仿真:主/从,计算网格,MaReduce等等.
批处理 (任何行业):Camel集成来连接批处理数据源 Actor来分治地批处理工作负载
通信Hub (电信, Web媒体, 手机媒体):垂直扩展,水平扩展,容错/高可用性
(MOM, 在线游戏, ):垂直扩展,水平扩展,容错/高可用性
商业智能/数据挖掘/通用数据处理:垂直扩展,水平扩展,容错/高可用性
复杂事件流处理:垂直扩展,水平扩展,容错/高可用性
资料
http://akka.io/
http://akka.io/docs/akka/1.2/java/remote-actors.html
http://typesafe.com/resources/getting-started/tutorials/getting-started-first-java.html
http://akka.io/docs/akka/1.2/java/remote-actors.html#id6
http://www.gtan.com/akka_doc/index.html(中文api)
import akka.actor.UntypedActor; public class TestActor extends UntypedActor { public void onReceive(Object msg) { getContext().reply(msg + " World"); } } import akka.actor.Actors; import akka.remoteinterface.RemoteServerModule; public class Server { public static void main(String[] args) { RemoteServerModule server = Actors.remote().start("localhost", 8888); server.register("test-service", Actors.actorOf(TestActor .class)); } } import akka.actor.ActorRef; import akka.actor.Actors; public class Client { public static void main(String[] args) { ActorRef actor = Actors.remote().actorFor("test-service", "localhost", 8888); for (int i = 0; i < 10000; i++) { Object result = actor.sendRequestReply("Hello"); System.out.println(result); } } }
相关推荐
akka实例 java实现tcp远程调用,一个服务端,一个客户端
1、资源内容:基于Java实现Akka优化PSO粒子群算法(源码).rar 2、适用人群:计算机,电子信息工程、数学等专业的学习者,作为“参考资料”参考学习使用。 3、解压说明:本资源需要电脑端使用WinRAR、7zip等解压工具...
演示Akka集群分片的Java应用程序 安装 编译并生成压缩包 mvn clean install 将压缩文件解压缩到合适的目录中 mkdir -p ~/backend; cd ~/backend; tar xzvf $PATH_TO_REPO/akkacluster/backend/target/backend/...
初学akka使用实例,有很好的帮助啊,可实际运行
阿卡-http-sse 在 Java 中使用 akka-http 发送事件 关于如何使用 akka-http 执行 sse 的一个非常简单的示例(一个类)。 ======== 通过 travis-ci 集成
为了实现这一点,您将完成一系列按主题组织的练习,这些练习在使用 Java 的 Akka 快速通道中列出。 确保您手边有甲板,因为您需要参考它以获得指导。先决条件本课程最适合具有 Java 知识的个人。 您还需要访问 ...
Akka Java文档
Akka is a toolkit and runtime for building highly concurrent, distributed, and resilient message-driven applications on the JVM.
Java 中 Akka 的简单生产者消费者示例 此存储库包含 3 个简单网络爬虫的示例: 一个连续的例子 将逻辑拆分为 3 个 Actor 的示例 页面的检索由多个 Actor 并行处理的示例。 检索失败且应用程序挂起的示例 重新发送...
阿卡自定义邮箱为 Java 工具包 Akka 实现自定义邮箱
AKKA-HTTP的几个难点主要集中在以下几点: 1. 支持websocket ...3. RESTful实现 4. 跨域支持 5. 支持静态资源(屏蔽各种配置文件) 6. 一个进程同时绑定HTTP和HTTPS 7. 将http请求异步接管到akka集群
We believe that writing correct ...Please note that all code samples compile, so if you want direct access to the sources, have a look over at the Akka Docs subproject on github: for Java and Scala.
Akka.NET 是 Akka 的 .NET 开源实现。用于构建强大的并发和分布式应用。Akka 是一个用 Scala 编写的库,用于简化编写容错的、高可伸缩性的 Java 和 Scala 的 Actor 模型应用。示例代码:using System; using ...
AKKA (java) 精讲
Akka V2.3.6版本的java接口官方开发文档,支持jdk1.6,适合在使用了低java版本开发的老系统上开发维护
响应式架构 消息模式Actor实现与Scala.Akka应用集成 响应式架构 消息模式Actor实现与Scala.Akka应用集成
akka java official document
Java Akka快速入门快速入门指南《的介绍了此示例Hello World示例说明了Akka的基础知识。 在30分钟内,您应该能够下载并运行示例,并使用本指南来了解示例的构造方式。 这将使您的脚湿透,并希望激发您更深入地探索...
This compact book includes in-depth introductions to RxJava, Akka Streams, and Reactor, and integrates the latest related features from Java 9 and 11, as well as reactive streams programming with the...