Akka是什么?

可扩展的实时事务处理

我们相信编写出正确的、具有容错性和可扩展性的并发程序太困难了。这多数是因为使用了错误的工具和错误的抽象级别。Akka就是为了改变这种状况而生的。通过使用Actor模型我们提升了抽象级别,为构建可扩展的、有弹性的响应式并发应用提供了一个更好的平台——《响应式宣言》 。在容错性方面我们采用了“let it crash”(让它崩溃)模型,该模型已经在电信行业构建出“自愈合”的应用和永不停机的系统,取得了巨大成功。Actor还为透明的分布式系统以及真正的可扩展高容错应用的基础进行了抽象。

Akka是开源的,可以通过Apache 2许可获得。

可以从 http://akka.io/downloads/ 下载

请注意所有的代码示例都是可编译的,所以如果你想直接获得源代码,可以查看github的"Akka Docs"子项目——javascala

Akka实现了独特的混合模型

Actors为你提供:

1 轻量级并发处理

  • 对并发/并行程序的简单的、高级别的抽象。
  • 异步、非阻塞、高性能的事件驱动编程模型。
  • 非常轻量的事件驱动处理(1G内存可容纳数百万个actors)

2 容错

  • 使用“let-it-crash”语义的监控层次体系。
  • 监控层次体系可以跨越多个JVM,从而提供真正的容错系统。
  • 非常适合编写永不停机、自愈合的高容错系统。

3 位置透明性

Akka的所有元素都为分布式环境而设计:所有actor只通过发送消息进行交互,所有操作都是异步的。

4 持久性

actor接收到的消息可以选择性的被持久化,并在actor启动或重启的时候重放。这使得actor能够恢复其状态,即使是在JVM崩溃或正在迁移到另外节点的情况下。

Akka的两种使用方式

以库的形式:在web应用中使用,放到 WEB-INF/lib 中或者作为一个普通的Jar包放进classpath。

以微内核的形式:可以将你的应用放进一个独立的内核。

参阅用例与部署场景了解细节。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Integrating with Akka Akka 使用Actor模型来提升抽象等级并且提供一个更好的平台去构建...
    zerolinke阅读 3,557评论 0 3
  • Actor系统的实体 在Actor系统中,actor之间具有树形的监管结构,并且actor可以跨多个网络节点进行透...
    JasonDing阅读 3,362评论 2 6
  • Akka是一个构建在JVM上,基于Actor模型的的并发框架,为构建伸缩性强,有弹性的响应式并发应用提高更好的平台...
    三分青年阅读 4,550评论 0 30
  • 持久化 当我们在集群系统中,一台机器向另一台机器发送一段数据,负责接收的机器在接收数据前突然宕机,就会造成数据丢失...
    mango_knight阅读 4,578评论 0 4
  • 3.4 Spark通信机制 前面介绍过,Spark的部署模式可以分为local、standalone、Mesos、...
    Albert陈凯阅读 1,102评论 0 1